![]()
줄 번호 등을 가진 MACOS 및 iOS TEXTVIEW. (nstextView/uitextView Reimplementation)
이 프로젝트의 목표는 TextKit 2 프레임 워크를 사용하여 NstextView/UitextView 교체 재사용 가능한 구성 요소를 구축하는 것입니다. 많은 좋은 이유 때문에.
구성 요소는 주로 소스 코드 편집기 로서 Swift Studio 요구를 제공하기 위해 개발되었습니다.
TextKit 2는 WWDC 2021에서 TextKit 1 텍스트 레이아웃을 대체하여 발표되었습니다. Apple은 텍스트 편집을 위해 특수화 된보기 구성 요소 인 NSTextView 가 TextKit 2를 채택하고 TextKit 1 비트를 따라 지원할 것이라고 발표했습니다. NSTextView + TextKit2에 대해 더 많이 배우기 시작하면서 오늘 (2022 년 2 월)에 NSTextView 나 TEXTKIT 2 클래스가 완전히 작동하지 않는다는 것을 깨달았습니다. 그 과정에서 나는 DTS (지원 티켓)를 요청하는 Apple에 몇 가지 버그 보고서를보고했습니다. 결국, 나는이 프로젝트를 시작하도록 강요 한 특정 버그에 의해 막혔습니다.
GitHub 스폰서의 지속적인 기여 덕분에 프로젝트의 재무 지속 가능성이 가능합니다.
SttextView는 이미 텍스트 편집기 구성 요소로 잘 적합합니다. 그러나 V1.0이 출시되기 전에 여전히 개선이 필요합니다.
새로운 기능을 제안하거나 투표하십시오 : 기능 요청
STTextView 는 Swift 패키지 관리자를 사용하여 배포됩니다. Package.swift 의 종속성으로 추가하여 프로젝트에 설치하십시오. Xcode 프로젝트 설정의 스수 선언 또는 "패키지 종속성"을 통해.
let package = Package (
dependencies : [
. package ( url : " https://github.com/krzyzanowskim/STTextView " , from : " 1.0.0 " )
]
) Demo Applications 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 = trueNstextView 및 TextKit 프레임 워크와 관련된 TextKit 2 문제 및 버그 목록은 지금까지 Apple에보고했습니다.
... 문제 목록이 완료되지 않았다는 것을 알고 있습니다. SttextView에서 대부분의 문제를 해결했습니다.
( St Prefix는 SS가 1939 년 이후 접두사가 좋지 않기 때문에 " S Wift S T Udio"를 나타냅니다)
새로운 토론 주제 또는 풀 요청을 시작하십시오.
나는 당신의 의견을 듣고 싶습니다! x/twitter @krzyzanowskim, mastodon @krzyzanowskim @mastodon.social을 통해 연락하십시오.
GNU GPL 라이센스 v3과 호환되는 라이센스에 따라 오픈 소스 애플리케이션을 작성하는 경우 GPLV3의 용어에 따라 SttextView를 사용할 수 있습니다.
€ 5부터 시작하십시오.
SttextView를 사용하여 비 엽서 소스 제품 및 응용 프로그램을 개발하려면 상용 라이센스가 적절합니다. 이 옵션을 사용하면 소스 코드가 독점적으로 유지됩니다. 전체 응용 프로그램 소스 코드를 오픈 소스 라이센스로 변경할 필요는 없습니다. SttextView 상업용 라이센스를 구매하십시오