【发布时间】:2019-10-11 11:50:03
【问题描述】:
这是我的示例代码:
class ViewController: UIViewController, UITextViewDelegate {
@IBOutlet weak var textView_editingView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
textView_editingView.text = ""
textView_editingView.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
print("Not Called")
return true
}
func textViewDidChange(_ textView: UITextView) {
print("Called")
}
}
当我将键盘类型更改为“中文(简体)-手写”时,输入文本时不会调用“shouldChangeTextIn range”(UITextViewDelegate)。
在这个委托中有一些需要被称为的检查,如提及、主题标签、网址。由于未调用此委托,因此更改键盘时我的这些验证逻辑失败。否则,对于普通的英文键盘,一切正常。
请注意:我使用的是 XCode Simulator 的键盘设置中提供的默认键盘,这也可以在 iPhone 7 Plus 上重现。
【问题讨论】:
标签: ios xcode uitextview swift4.2 uitextviewdelegate