![]()
具有行號的表演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 NSTextView + 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商業許可證