我想讓我的應用程序的一部分,如果人沒有更改我的UITextField中的空白文本,然後他/她不能繼續下一步。基本上,我想測試無文本的UITextField。我使用了if(text == @「」)方法,但是如果用戶點擊UITextField但沒有鍵入,那麼if語句不起作用。出於某種原因,它不認爲文字==零或「」。我是否執行錯誤的代碼。任何其他選項。請幫忙!!!如何測試UITextField是否爲零?
2
A
回答
12
你應該檢查text
財產length
:
if([[textField text] length] == 0) {
//do something...
}
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中的按鈕,如果你提供你的空場必須首先禁用它。
1
我有寫代碼來檢查字符串是否爲空。此代碼還檢查字符串唯一的空間,也是空的商店名稱和地址等,這將幫助你。
NSString *stringTemp = textField.text;
stringTemp = [stringTemp stringByReplacingOccurrencesOfString:@" " withString:@""];
if ([stringTemp isEqualToString:@""]) {
NSLog(@"Empty string");
}
else{
NSLog(@"string has some content ");
}
感謝
+0
這不會匹配其他空格字符。使用stringByTrimmingCharactersInSet:與空白字符集。 – 2011-04-15 04:41:06
2
下面是我用的是種類...
@implementation NSString (NSString+Extensions)
- (BOOL)isNotBlank {
return [[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] > 0;
}
@end
這樣一個零字符串將評估爲false,這是正確的。創建一個isBlank
會返回false爲零,這是不正確的。
你考慮空間嗎?可以用戶類型空間嗎?你把它們當作零還是空的? – Ravin 2011-04-15 03:55:12