【发布时间】:2014-03-01 09:55:26
【问题描述】:
我想知道如何检测文本字段中的更改。我知道我们可以使用 Did End On Exit 但这仅在用户完成在文本字段上输入并按回车键或单击其他地方时才有效。我想知道如何检测文本字段中字母/数字的每次输入或删除,即如果文本字段中的初始文本是徽章。一旦用户按下删除按钮以使文本“坏”我想运行一个方法,一旦用户再次按下删除使其“坏”我想运行一个方法等。
谢谢:)
【问题讨论】:
我想知道如何检测文本字段中的更改。我知道我们可以使用 Did End On Exit 但这仅在用户完成在文本字段上输入并按回车键或单击其他地方时才有效。我想知道如何检测文本字段中字母/数字的每次输入或删除,即如果文本字段中的初始文本是徽章。一旦用户按下删除按钮以使文本“坏”我想运行一个方法,一旦用户再次按下删除使其“坏”我想运行一个方法等。
谢谢:)
【问题讨论】:
以上可以在界面生成器中通过右键单击 UITextField 并将“Editing Changed”发送事件拖到您的子类单元中来完成。
【讨论】:
使用 UITextFieldDelegate 的这个委托方法...
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
这里string 表示您在文本字段中新输入的内容。有时,当您尝试粘贴一组字符时,此字符串包含多个字符。
每次在文本字段上键入时都会调用此委托方法,如果在此方法中返回 NO,则键入的字符不会在文本字段中更新。
【讨论】:
使用以下委托方法UITextField
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
阅读official documentation of UITextFieldDelegate Protocol Reference.
【讨论】:
怎么样
- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string?
【讨论】: