检测用户是否input了UITextField
我知道,如果您使用下面的代码行,您可以检测用户在TEXT VIEW中input的内容。
if ([[textView text] isEqualToString:@"")
我想检测用户是否在文本字段中input了任何内容,而这不适用于文本字段。 我应该改变什么? 谢谢你的帮助!
UITextFieldDelegate是find这个的首选方法。
- (void)textFieldDidBeginEditing:(UITextField *)textField
– 这只会告诉你它已经成为第一个响应者/关键字段,这并不能保证用户修改了这个值
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
– 这个方法会告诉你什么时候用户点击一个键来改变文本,一个“粘贴”会导致多个字符在string,回退一个,或删除的select将导致string为空,…
- (void)textFieldDidEndEditing:(UITextField *)textField
– 这是一个常见的位置,用于检查字段中的值与模型中的值是否发生了编辑。 这只会在字段放弃“关键”状态时被调用,请注意,用户可以点击一个button,使得整个视图在被调用之前消失,这往往使跟踪您感兴趣的任何字段成为“关键字段”(见第一种方法)
在相关实现中设置断点以熟悉其呼叫次序/逻辑可能会很有用
通过访问“text”属性,可以像UITextView一样检索UITextField的内容。 下面的代码是如果一个文本字段不是空的。
if (![someTextField.text isEqualToString:@""]) { NSLog(@"someTextField is not empty"); }
您还可以使用UITextField委托来检测用户何时开始input,停止input等。有关该信息的更多信息,请参阅文档。
最后,这是一个链接到UITextField文档。 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextField_Class/Reference/UITextField.html#//apple_ref/doc/uid/TP40006888
你可以检查文本的长度,而不是内容
if ([[textView text] length]==0)