![]()
具有行号的表演MacOS和iOS TextView等等。 (nstextview/uitextview重新实现)
该项目的目标是构建NstextView/uitextView替换可重复使用的组件,利用TextKit 2框架。由于许多充分的理由。
该组件主要是为了满足Swift Studio需求作为源代码编辑器。
TextKit 2在WWDC 2021期间宣布为TextKit 1替换文本布局等。 Apple宣布, NSTextView (专门用于文本编辑的视图组件)将采用TextKit 2,并在TextKit 1 Bit上提供支持。当我开始了解有关NSTextView + TextKit2的更多信息时,我意识到截至今天(2022年2月), NSTextView和TextKit 2 class n n n stextview nes n n n s n n stextview + textKit2均不完全正常。在此过程中,我向Apple报告了一些错误报告,要求DTS(支持票)。最终,我被特定的错误所阻止,促使我开始了这个项目。
由于我们的GitHub赞助商的持续贡献,该项目的财务可持续性是可能的
STTEXTVIEW已经非常适合作为文本编辑器组件。但是,在发布v1.0之前,它仍然需要改进
建议或投票购买新功能:功能请求
使用Swift软件包管理器分发STTextView 。通过在Package.swift中添加为依赖项,将其安装到项目中。swift清单或通过Xcode项目设置中的“软件包依赖关系”
let package = Package (
dependencies : [
. package ( url : " https://github.com/krzyzanowskim/STTextView " , from : " 1.0.0 " )
]
) 演示应用程序textedit和textedit.swiftui允许您探索库。
STTEXTVIEW组件中的插件可提供其他功能和自定义,超出了简单的文本显示。它们通过添加语法突出显示,单词计数跟踪等功能来增强文本视图的核心功能。这些插件在维护模块化和适应性的软件结构的同时扩展了STTEXTVIEW的实用程序。
TextView是包裹sttextview的SwiftUi视图。
import STTextViewSwiftUI
struct ContentView : View {
@ State private var text = AttributedString ( " Hello World! " )
@ State private var selection : NSRange ?
var body : some View {
TextView (
text : $text ,
selection : $selection ,
options : [ . wrapLines , . highlightSelectedLine ] ,
plugins : [ plugin1 ( ) , plugin2 ( ) ]
)
. textViewFont ( . preferredFont ( forTextStyle : . body ) )
}
}STTextView是一个NSView子类,可以像其他任何视图一样初始化。它具有与NstextView相似的API。
import STTextView
let textView = STTextView ( )
view . addSubview ( textView )(MacOS)添加到滚动视图
let textView = STTextView ( )
let scrollView = NSScrollView ( )
scrollView . documentView = textView let scrollView = STTextView . scrollableTextView ( )
let textView = scrollView . documentView as! STTextView可以通过多种方式自定义文本视图。
let paragraph = NSParagraphStyle . default . mutableCopy ( ) as! NSMutableParagraphStyle
// Set the line-height to 110%
paragraph . lineHeightMultiple = 1.1
paragraph . defaultTabInterval = 28
// Default Paragraph style
textView . typingAttributes [ . paragraphStyle ] = paragraph
// Set default font
textView . font = NSFont . monospacedSystemFont ( ofSize : 14 , weight : . regular )
// Set default text color
textView . textColor = . textColor
// Set text value
textView . text = " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare lobortis sem a vulputate. "
textView . addAttributes ( [ . foregroundColor : NSColor . red ] , range : NSRange ( location : 10 , length : 5 ) )
// Wrap/No wrap lines to editor width
textView . isHorizontallyResizable = true
// Highlight the selected line.
textView . highlightSelectedLine = true添加与行号的排水沟
textView . showLineNumbers = true
textView . gutterView ? . drawSeparator = true(MACOS)启用一个可选的搜索和更高位置查找视图中的接口,通常是滚动视图。
textView . isIncrementalSearchingEnabled = true
textView . textFinder . incrementalSearchingShouldDimContentView = truetextKit 2问题和错误与NstextView和我向Apple报告的TextKit框架相关的错误列表:
...我知道问题列表尚未完成。我设法解决了sttextview中的大多数问题。
( ST前缀代表“ S WIFT S UDIO”
开始一个新的讨论主题或拉动请求。
我很想听听您的来信!通过x/twitter @krzyzanowskim,mastodon @krzyzanowskim @mastodon.social取得联系。
如果您是根据与GNU GPL许可证v3兼容的许可证的开源应用程序,则可以根据GPLV3的条款使用STTEXTVIEW。
从5欧元起一起。
如果您想使用STTEXTVIEW开发非开放的产品和应用程序,则商业许可证是合适的。使用此选项,您的源代码保持专有。您不必将整个应用程序源代码更改为开源许可证。购买sttextview商业许可证