【问题标题】:UITextFieldDelegate wasn't called when Undo key in iPad keyboard is pressed按下 iPad 键盘中的撤消键时未调用 UITextFieldDelegate
【发布时间】:2012-01-02 15:45:54
【问题描述】:

iPad 键盘上有这个“撤消”键。

我有一个 UITextField *textField 在哪里, textField.placeholder = @"输入";

假设 textField 不为空 (textField.text = @"Something";), 当我触摸 textField 时,它变成了 firstResponder,

1、将textField中的所有字符串退格(显示占位符) 2、输入其他内容 3,Backspace 一切再次(占位符显示) 4、按“撤消”键

结果: textField.placeholder 与 textField.text 重叠显示。 另外,没有调用 UITextFieldDelegate(shouldChangeCharactersInRange 和 UITextFieldTextDidChangeNotification)。

有人遇到同样的问题吗? 不知何故是 iOS 错误?

【问题讨论】:

    标签: ios keyboard placeholder undo uitextfielddelegate


    【解决方案1】:

    这里有一些步骤,只需确认你是否只这样做了。

    1. IBOutlet 连接到带有 nib 文件的文本字段对象
    2. 将 nib 文件中文本字段的委托属性设置为文件所有者
    3. 在.h文件中实现
    4. 在 .m 文件中实现以下方法:
      • (void)textFieldDidBeginEditing:(UITextField *)textField
      • (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

    所以当你开始编辑时,第一个方法被调用。之后,对于文本字段中的每个更新,都会调用第二个方法。

    使用断点将帮助您捕捉确切的场景。

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 2020-10-29
      • 2017-03-25
      • 2011-06-16
      • 2012-07-18
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多