检测用户是否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等。有关该信息的更多信息,请参阅文档。

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html#//apple_ref/doc/uid/TP40006991

最后,这是一个链接到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)