2010-01-10 53 views
1

好的,我遇到了一個小問題。我試圖在我的UITextField中過濾兩件事。它們包括限制字符數量和過濾字符類型。我可以讓每個人都在那裏自己工作,但他們都不一起工作。這可能與雙重回報有關,idk。希望有人可以看看我的代碼,看看他們爲什麼不能一起工作。我已經把自己打翻了。謝謝您的幫助。iPhone UITextField過濾器無法正常工作

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




svo = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS] invertedSet]; 

NSString *filtered = [[string componentsSeparatedByCharactersInSet:svo] componentsJoinedByString:@""]; 
BOOL bT = [string isEqualToString:filtered]; 

return bT; 

if (myTextField.text.length >= MAX_LENGTH && range.length == 0) 
{ 
    return NO; 
} 
else 
{ 
    return YES; 
} 
} 

回答

2

你的第一個'返回'是始終發生的,因爲你在這裏無條件地調用'return'。

我想你的意思是這樣寫:

return bT || myTextField.text.length < MAX_LENGTH || range.length > 0; 

基本上,更換你的「返回BT」,並與上述的「如果」語句。 的基本上意味着你在下列情況下返回YES:

  • BT是YES
  • 或在文本字段中的文本的長度小於MAX_LENGTH
  • 或範圍長度爲正

在所有其他情況下,你正在返回沒有。

+0

感謝您的回覆。 – 0SX 2010-01-10 17:00:57

相關問題