2012-11-23 52 views
3

如何設置在UIAlertView內創建的文本字段的最大字符串長度?我正在使用Xcode 4.5並在10.8(OS X)上構建應用程序。目前,我有UIAlertView,當用戶單擊按鈕時,它會啓動。用戶將掃描他們的RFID徽章,並且我要將UIAlertView的輸入文本字段限制爲10個(10個)字符,以便用戶不能欺騙關聯過程。如何爲UIAlertView文本字段設置最大字符串長度

回答

2

看起來像上面的回答是幾乎權。

當輸入單個字符時,range.length(對於此方法)似乎始終爲零,而位置遞增。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 

     NSLog(@"Range: %@", NSStringFromRange(range)); 
     return (range.location < 10); 

} 

編輯:長度可能會更長,如果你做的比單字符類型以外的東西,即粘貼線等

3

您可以檢查文本的長度在文本框的委託方法:

textField:shouldChangeCharactersInRange:replacementString: 

,並返回NO,如果你不想改變。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    if (textField.text.length - range.length + string.length > 10) { 
     return NO; 
    } 
    return YES; 
} 
+0

這種邏輯是不正確。它應該是'if(textField.text.length - range.length + string.length> 10)'。範圍的位置是無關緊要的。而且你不考慮當前的文字或新的文字。示例 - 脫字號在文本開始時沒有選擇,然後粘貼20個字符。你的代碼仍然返回YES。 – rmaddy

+0

是的,你是對的。 – Dave

+0

我實現了上面的方法,但是我仍然可以輸入10個以上的字符。 – Chris

相關問題