繁体   English   中英

检测用户是否输入了 UITextField

[英]Detecting whether the user has typed in a UITextField

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

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

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

UITextFieldDelegate是找出这一点的首选方法。

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

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

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

在相关实现中设置断点以熟悉它们的调用顺序/逻辑可能很有用

通过访问“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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM