如何测试UITextField为零?

时间:2011-04-15 03:24:55

标签: iphone xcode text uitextfield null

我正在尝试创建我的应用程序的一部分,如果该人没有更改我的UITextField中的空白文本,那么他/她就无法继续下一步。基本上,我想测试UITextField的nil文本。我使用了if(text == @“”)方法,但如果用户单击UITextField但未键入,则if语句不起作用。由于某种原因,它不认为文本== nil或“”。我是否实施了错误的代码。任何其他选择。请帮忙!!!

4 个答案:

答案 0 :(得分:12)

您应该检查length属性的text

if([[textField text] length] == 0) {
  //do something...
}

答案 1 :(得分:2)

这是我使用的类别......

@implementation NSString (NSString+Extensions)            
- (BOOL)isNotBlank {
    return [[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] > 0;
}        
@end

这样,nil字符串将评估为false,这是正确的。创建isBlank将返回false为nil,这是不正确的。

答案 2 :(得分:1)

我编写代码来检查字符串是否为空。此代码还会检查仅限字符串的空间,该空间对于商店名称和地址等也是空的。这将对您有所帮助。

NSString *stringTemp = textField.text;
stringTemp = [stringTemp stringByReplacingOccurrencesOfString:@" " withString:@""];

if ([stringTemp isEqualToString:@""]) {
    NSLog(@"Empty string");
}
else{
    NSLog(@"string has some content ");
}

谢谢

答案 3 :(得分:0)

如果我是你,我会在用户输入时禁用并启用该按钮。 Imho最好是在没有文本时按钮看起来禁用,而不是让用户点击按钮告诉他不允许他移动到下一个视图。大多数苹果自己的应用都是这样做的。

您可以使用UITextFieldDelegate method这样的

来实现此行为
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    // "Length of existing text" - "Length of replaced text" + "Length of replacement text"
    NSInteger textLength = [aTextView.text length] - range.length + [text length];

    if (textLength > 0) {
        doneButton.enabled = YES;
    }
    else {
        doneButton.enabled = NO;
    }
    return YES;
}

如果您提供预填充的文本字段,则必须在viewDidLoad中启用该按钮(或任何您想要的地方),如果您提供空字段,则必须首先禁用它。