iphone / objective-c如何检查文本字段是否为空

时间:2010-01-25 13:14:10

标签: iphone uitextfield

我在iphone应用程序中有一个典型的文本字段,而在ViewWillAppear中,我想使用文本字段中的文本做一些逻辑。

如果txtField.text为空,我希望选择下一个文本字段txtField2进行输入。

我试图通过以下方式实现这一目标:

if (txtField.text != @"") [txtField2 becomeFirstResponder];

但经过一些测试后,txtField.text(虽然为空)仍然不会注册为等于@“” 我错过了什么?

4 个答案:

答案 0 :(得分:19)

比较两个指针变量时,实际上比较了这两个变量所指向的内存中的地址。这种表达式唯一的情况是,当你有两个指向一个对象的变量时(因此指向内存中的同一个地址)。

要比较对象,常见的方法是使用isEqual:中定义的NSObjectNSNumberNSString等类具有名为isEqualToNumber:isEqualToString:的其他比较方法,依此类推。以下是您的情况示例:

if ([txtField.text isEqualToString:@""]) [txtField2 becomeFirstResponder];

如果您希望在NSString实际上不为空的情况下执行某些操作,请使用!符号来反转表达式的含义。这是一个例子:

if (![txtField.text isEqualToString:@""]) [txtField2 becomeFirstResponder];

答案 1 :(得分:9)

你必须检查:

if (txtField.text.length != 0)

if ([txtField.text isEqualToString:@""])

写你的方式:(txtField.text != @"")你实际上将pointers与字符串进行比较而不是它们的实际字符串值。

答案 2 :(得分:3)

您还必须检查nil

if([textfield.text isEqualToString:@""] || textfield.text== nil )

只有当用户点击文本字段时,您才能使用isEqualToString进行检查,否则文本字段将为零,因此您可以更好地检查这两种情况。

一切顺利

答案 3 :(得分:0)

我们已经有内置方法返回布尔值,指示文本输入对象是否有任何文本。 检查带链接的简单解决方案

https://stackoverflow.com/a/25726765/3647325