文本字段扩展未更新屏幕上的文本 (swfit4)
textfield extension is not updating text on screen (swfit4)
下面的扩展代码更新文本但不更新最后一个字母。因此,如果她在文本字段中键入的单词,屏幕上的文本只会显示 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
}
}
我认为您需要像这样进行委托回调:
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
}
希望对您有所帮助...
下面的扩展代码更新文本但不更新最后一个字母。因此,如果她在文本字段中键入的单词,屏幕上的文本只会显示 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
}
}
我认为您需要像这样进行委托回调:
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
}
希望对您有所帮助...