【问题标题】:Trigger textFieldShouldClear programmatically以编程方式触发 textFieldShouldClear
【发布时间】:2014-11-25 17:13:22
【问题描述】:

如果我理解正确,UITextFieldDelegate 方法textFieldShouldClear 会在用户点击UITextField 提供并启用的清除按钮/图标时触发。但是我需要以编程方式清除UITextField,在没有明确的 UITextField 方法(我可以找到)的情况下,我这样做:

textField.text = @"";

但是,以上内容不会触发我需要的 textFieldShouldClear 委托方法。任何想法我该怎么做?

或者,我上面的调用是否会触发任何其他委托方法?我查了一下,在这种情况下没有调用textInputChanged

【问题讨论】:

    标签: ios objective-c uitextfield uitextfielddelegate


    【解决方案1】:

    如果您以编程方式设置文本,则不会触发 TextField 委托方法。

    Related Question

    不过,您可能只需要在 textField.text = @""; 行之后执行任何需要完成的逻辑,对吧?

    【讨论】:

    • 感谢您指出相关答案,它帮助我找出适合我情况的解决方案 - 将其添加为答案
    【解决方案2】:

    我最终继承了UITextField 并实现了以下方法:

    - (void)setText:(NSString *)text {
    
        [super setText:text];
    
        [self textInputChanged:nil];
    }
    

    textInputChanged:UITextFieldDelegate 方法,每当以编程方式设置文本时我都需要调用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 2017-03-02
      • 2014-04-22
      相关资源
      最近更新 更多