1

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

我有一个 UITextField *textField 其中 textField.placeholder = @"Input";

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

1,退格文本字段中的所有字符串(显示占位符) 2,键入其他内容 3,再次退格所有内容(显示占位符) 4,按“撤消”键

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

有人面临同样的问题吗?它在某种程度上是iOS错误吗?

4

1 回答 1

0

这里有一些要遵循的步骤,只需确认您是否已经这样做了。

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

因此,当您开始编辑时,将调用第一个方法。之后,对于文本字段中的每个更新,都会调用第二个方法。

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

于 2011-11-21T15:46:20.353 回答