[UITextView委托在键盘被选择为中文(简体)时未调用–应该使用Swift 4.2中的手写体

问题描述 投票:0回答:1

这是我的示例代码:

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)。

在此委托中有一定的支票,需要像提及,标签,URL那样被称为。由于未调用此委托,因此更改键盘后,这些验证的逻辑失败。否则,对于普通的英文键盘,一切都可以正常工作。

请注意:我使用的是XCode Simulator的“键盘”设置中可用的默认键盘,并且在iPhone 7 Plus上也可以重现。

ios xcode uitextview swift4.2 uitextviewdelegate
1个回答
0
投票

老实说,我遇到了同样的问题,并且以任何语言编写的东西似乎都具有相同的问题。我的解决方法是观察“ func textFieldDidEndEditing(UITextField)”,并且大概做“ func textFieldShouldEndEditing(UITextField)-> Bool”中需要做的所有事情。

© www.soinside.com 2019 - 2024. All rights reserved.