2012-09-07 49 views
0

我有幾個UItextfields連接到具有deleteCharactersInRange函數的代理來刪除昏迷。我剛剛發現,如果我開始編輯這些字段之一,寫入任何字符,然後我想刪除它們,iPad刪除按鈕的鍵盤不起作用。它不會刪除任何東西。Ipad刪除按鈕無法在UITextField中工作

爲什麼?

這是代碼

- (BOOL)textField:(UITextField *)tf shouldChangeCharactersInRange:(NSRange)r replacementString:(NSString *)str 
{ 
    if (tf == namegroup) { 
     if ([str isEqualToString:@","]) { 
      return NO; 
     } 
     return YES; 
    } 

    if ([[newmessagename text] length] + [str length] - r.length > 30) { 
     return NO; 
    } else { 
     return YES; 
    } 

    if (tf != namegroup ||tf != newmessagename){ 
    return YES; 
     } 
} 
+0

顯示你的'deleteCharactersInRange'和任何其他的UITextField代表代碼你有 – jere

+0

實際上,按鈕的作品對於newmesagename和namegroup – Alessandro

+0

好的。在你的方法開始處放置一個斷點,然後逐步查看它是否實際返回「NO」。很確定你必須在你不應該的地方返回NO,所以當你點擊delete並且委託在'deleteCharactersInRange'返回'NO'時,什麼都不會發生 – jere

回答

0

我固定它的代碼更改爲此:

- (BOOL)textField:(UITextField *)tf shouldChangeCharactersInRange:(NSRange)r replacementString:(NSString *)str 
{ 
if (tf == namegroup) { 
    if ([str isEqualToString:@","]) { 
     return NO; 
    } 
    return YES; 
} 

if (tf == newmessagename) { 
if ([[newmessagename text] length] + [str length] - r.length > 30) { 

    return NO; 
    } 

    return YES; 
} 
}