0

下面的扩展代码会更新文本,但不会更新最后一个字母。因此,如果她在文本字段中键入单词,则屏幕上的文本仅显示 sh。

    extension ViewController: UITextFieldDelegate{
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    DispatchQueue.main.async {
        self.textNode.textGeometry.string = textField.text!
    }
    return true
}
}
4

1 回答 1

0

我相信您需要像这样进行委托回调:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

    if let textEntered = textField.text,
        let textRange = Range(range, in: textEntered) {

    let updatedText = textEntered.replacingCharacters(in: textRange, with: string)
        print("User Has Entered \(updatedText)")

        DispatchQueue.main.async {
            self.textNode.textGeometry.string = updatedText
        }
    }

    return true
}

希望能帮助到你...

于 2018-04-03T01:01:42.883 回答