uitextview使得可以编辑的真实
我正在尝试使用SwiftUI和UitextView构建一个简单的文本编辑器。在UITEXTVIEW中,我正在尝试使用链接检测,该链接检测需要可见的属性为false。但是,当我将可行的错误做出时,我将无法再次实现,我无法键入任何文本。当您使可行的错误时,没有委托方法可以使用。 谁能告诉我如何再次使可行的真实?
uitextview,uiviewprementable
import SwiftUI
struct TextView: UIViewRepresentable {
@Binding var text: String
let textView = UITextView()
class Coordinator: NSObject, UITextViewDelegate {
var parent: TextView
init(_ parent: TextView) {
self.parent = parent
}
func textViewDidChange(_ textView: UITextView) {
parent.text = textView.text
}
func textViewDidEndEditing(_ textView: UITextView) {
textView.isEditable = false
}
}
func makeCoordinator() -> Coordinator {
return Coordinator(self)
}
func makeUIView(context: Context) -> UITextView {
textView.delegate = context.coordinator
textView.dataDetectorTypes = .link
textView.becomeFirstResponder()
return textView
}
func updateUIView(_ uiView: UITextView, context: Context) {
uiView.text = text
}
}
contentview
import SwiftUI
struct ContentView: View {
@State private var text = "www.apple.com"
var body: some View {
TextView(text: $text)
}
}
谢谢!
I am trying to build a simple text editor using swiftUI and UITextView. In UITextView I am trying to use link detection which requires isEditable property to be false. But when I make isEditable false I am not able to make it true again and I am not able to type any text. No delegate method works when you make isEditable false.
Can anyone tell me how to make isEditable true again ?
UITextView, UIViewRepresentable
import SwiftUI
struct TextView: UIViewRepresentable {
@Binding var text: String
let textView = UITextView()
class Coordinator: NSObject, UITextViewDelegate {
var parent: TextView
init(_ parent: TextView) {
self.parent = parent
}
func textViewDidChange(_ textView: UITextView) {
parent.text = textView.text
}
func textViewDidEndEditing(_ textView: UITextView) {
textView.isEditable = false
}
}
func makeCoordinator() -> Coordinator {
return Coordinator(self)
}
func makeUIView(context: Context) -> UITextView {
textView.delegate = context.coordinator
textView.dataDetectorTypes = .link
textView.becomeFirstResponder()
return textView
}
func updateUIView(_ uiView: UITextView, context: Context) {
uiView.text = text
}
}
ContentView
import SwiftUI
struct ContentView: View {
@State private var text = "www.apple.com"
var body: some View {
TextView(text: $text)
}
}
Thank You!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论