文本字段扩展不更新屏幕上的文本 (swfit4)

Posted

技术标签:

【中文标题】文本字段扩展不更新屏幕上的文本 (swfit4)【英文标题】:textfield extension is not updating text on screen (swfit4) 【发布时间】:2018-04-03 00:35:44 【问题描述】:

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


【问题讨论】:

【参考方案1】:

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

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

希望对你有帮助...

【讨论】:

以上是关于文本字段扩展不更新屏幕上的文本 (swfit4)的主要内容,如果未能解决你的问题,请参考以下文章

如何在屏幕上实现具有许多文本字段的 NSScrollView?

通过整个屏幕移动文本视图

RadListView - 更新文本字段值

代号一屏缩水[重复]

如何在 Swift 中编辑或更新文本字段中的文本?

保存到 iPhone 主屏幕