【问题标题】:Detect when UITextField gets string pasted检测 UITextField 何时粘贴字符串
【发布时间】:2016-04-29 12:01:50
【问题描述】:

如何检测 UITextField 何时粘贴了文本?我有两个用于起始地址和结束地址的文本字段。一旦我检测到它们的变化,我会询问用户他们是否想根据该变化来改变他们的地图路线/数据。显然,当他们在字段中输入时,我可以得到代表,但我无法弄清楚他们何时粘贴到其中(比如说他们希望开始和结束目的地相同,并且他们从一个复制到另一个)。

任何帮助将不胜感激。

【问题讨论】:

    标签: uitextfield uipasteboard


    【解决方案1】:

    我想通了。其实很简单。只需将更改事件目标添加到您的文本字段:

    [textfield addTarget:(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
    
    - (void) textFieldDidChange : (UITextField*) textField { 
    
    //something spectacular happens here...
    }
    

    这很简单,为什么 Apple 不将其作为协议方法的一部分?

    【讨论】:

      【解决方案2】:

      如果有人(比如我)想要 02/22 的最新 Swift 版本:

      textField.addTarget(self, action: #selector(textFieldChanged(sender:)), for: UIControl.Event.editingChanged)
      
      @objc func textFieldChanged(sender: UITextField) {
          if let textFieldText = sender.text {
             // textFieldText contains the changed value
          }
      }
      

      适用于用户在字段中输入和粘贴。

      【讨论】:

        猜你喜欢
        • 2020-12-11
        • 1970-01-01
        • 2018-07-16
        • 2014-12-26
        • 2020-01-07
        • 2013-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多