我正在尝试创建我的应用程序的一部分,如果该人没有更改我的UITextField中的空白文本,那么他/她就无法继续下一步。基本上,我想测试UITextField的nil文本。我使用了if(text == @“”)方法,但如果用户单击UITextField但未键入,则if语句不起作用。由于某种原因,它不认为文本== nil或“”。我是否实施了错误的代码。任何其他选择。请帮忙!!!
答案 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中启用该按钮(或任何您想要的地方),如果您提供空字段,则必须首先禁用它。