【问题标题】:Getting text from UITextField从 UITextField 获取文本
【发布时间】:2011-07-15 19:50:25
【问题描述】:

我正在尝试查看用户在文本字段中输入的内容是否等于字符串。出于某种原因,我的应用不听:

[textField1.text isEqualToString:@"Blah"];

它也不适用于:

[textField1 text] isEqualToString:@"Blah";

它似乎没有响应文本。然而,当我简单地将 textField1 连接到一个文本视图时,一切都很好!我究竟做错了什么?感谢您的帮助!

【问题讨论】:

  • 如果您的 textfield1 实际对应并且连接正确..如果其中的文本实际上完全等于 @"Blah",则第一行代码应返回 TRUE
  • 如果你NSLog(@"%@", textField1.text);,你会得到你期望的字符串吗?
  • textField1 设置为 nil 吗?

标签: iphone ios ipad text uitextfield


【解决方案1】:

我建议记录您从textField1.text 获得的信息。如果返回的字符串是nil,而文本字段中有文本,则表示您的插座未正确连接。同样重要的是要意识到-isEqualToString 会查找完全匹配(大小写、空格、全部),因此即使是额外的空格也会导致它返回NO

【讨论】:

  • 无论你输入与否,它都会返回NULL。我现在只想要一个完全匹配,然后如果需要,我会在以后做 stringRange 的事情。谢谢。
  • 如果在文本字段中有文本时它返回NULL,这意味着插座没有正确连接。仔细检查您的网点,并确保您在输入文字后拨打textField1.text
  • 路易做对了。我用他的代码替换了我的代码,没有触摸链接,它可以工作。
  • 当文本为nil 时,Louie 的代码将返回YES。这不是一个适当的比较。
【解决方案2】:
if ([textField1.text compare:@"Blah"] ==0) {
//its a match

}

【讨论】:

  • 除非字符串有特殊字符,否则这与你的第一行代码没有什么不同。
  • 如果您要使用compare,请使用NSOrderedSame(而不是0)以提高可读性!
  • textField1 == nil,那么这个比较“成功”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-30
  • 2011-07-10
相关资源
最近更新 更多