From 877009a33e19f58366d6d7f42c034ccf5bceb95b Mon Sep 17 00:00:00 2001 From: Shibo Lyu Date: Wed, 28 Feb 2024 15:09:47 +0800 Subject: [PATCH] feat(ui): Allow customization of NSTextView / UITextView. --- Sources/EasyRichTextUI/ERTTextEditor_AppKit.swift | 6 +++++- Sources/EasyRichTextUI/ERTTextEditor_UIKit.swift | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Sources/EasyRichTextUI/ERTTextEditor_AppKit.swift b/Sources/EasyRichTextUI/ERTTextEditor_AppKit.swift index b052e55..124b00c 100644 --- a/Sources/EasyRichTextUI/ERTTextEditor_AppKit.swift +++ b/Sources/EasyRichTextUI/ERTTextEditor_AppKit.swift @@ -12,9 +12,11 @@ import EasyRichText struct ERTTextEditor: NSViewRepresentable { @ObservedObject var editContext: ERTRichTextEditContext + var customize: ((NSTextView) -> ())? - init(editContext: ERTRichTextEditContext) { + init(editContext: ERTRichTextEditContext, customize: ((NSTextView) -> ())? = nil) { self.editContext = editContext + self.customize = customize } func makeCoordinator() -> ERTTextViewDelegate { @@ -42,6 +44,8 @@ struct ERTTextEditor: NSViewRepresentable { textView.textStorage?.setAttributedString(editContext.nsAttributedString) textView.delegate = context.coordinator + customize?(textView) + return textView } diff --git a/Sources/EasyRichTextUI/ERTTextEditor_UIKit.swift b/Sources/EasyRichTextUI/ERTTextEditor_UIKit.swift index 9012c46..30a78f6 100644 --- a/Sources/EasyRichTextUI/ERTTextEditor_UIKit.swift +++ b/Sources/EasyRichTextUI/ERTTextEditor_UIKit.swift @@ -12,9 +12,11 @@ import EasyRichText public struct ERTTextEditor: UIViewRepresentable { @ObservedObject public var editContext: ERTRichTextEditContext + var customize: ((UITextView) -> ())? - public init(editContext: ERTRichTextEditContext) { + public init(editContext: ERTRichTextEditContext, customize: ((UITextView) -> ())? = nil) { self.editContext = editContext + self.customize = customize } public func makeCoordinator() -> ERTTextViewDelegate { @@ -37,6 +39,8 @@ public struct ERTTextEditor: UIViewRepresentable { textView.backgroundColor = .clear textView.isScrollEnabled = false + customize?(textView) + return textView }