检测用户是否输入了UITextField

时间:2011-07-14 22:18:59

标签: iphone ios string ipad uitextfield

我知道如果您使用以下代码行,您可以检测用户在TEXT VIEW中输入的内容。

if ([[textView text] isEqualToString:@"")

我想检测用户是否在文本FIELD中输入了任何内容,这对文本字段不起作用。我应该改变什么?谢谢你的帮助!

3 个答案:

答案 0 :(得分:11)

UITextFieldDelegate是了解此问题的首选方式。

- (void)textFieldDidBeginEditing:(UITextField *)textField - 这只会告诉你它已成为第一个响应者/关键字段,这并不能保证用户修改了值

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string - 此方法会告诉您用户何时点击某个键来更改文本,“粘贴”会导致多个字符出现在字符串中,退格会超过一个字符,或删除选择内容导致字符串为空,...

- (void)textFieldDidEndEditing:(UITextField *)textField - 这是一个常用位置,可根据模型中的值检查字段中的值,以查看是否发生了编辑。这只会在字段放弃“关键”状态时调用,请注意用户可以点击一个按钮以使整个视图在调用之前消失,通常可以跟踪您感兴趣的任何字段是否成为“关键领域”(见第一种方法)

在相关实现中设置断点以熟悉其调用顺序/逻辑

非常有用

答案 1 :(得分:1)

您可以通过访问“text”属性,以与UITextView相同的方式检索UITextField的内容。下面的代码是文本字段不为空。

  if (![someTextField.text isEqualToString:@""])
  {
        NSLog(@"someTextField is not empty");
  }

您还可以使用UITextField委托来检测用户何时开始输入,停止输入等。有关该内容的更多信息,请参阅文档。

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

答案 2 :(得分:0)

您可以检查文字长度而不是内容

if ([[textView text] length]==0)