2011-09-07 63 views

回答

2

我不認爲有可能禁用某個鍵(除非它是諸如返回鍵之類的操作鍵之一),但如果您使用的是UITextField,則可以使用- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string委託方法來查看用戶是否按下了&鍵並將其從字符串中刪除

1

您不能這樣做。但是你的選擇是:

  • 如果使用UITextField可以驗證提交的用戶文本創建不offerring「&」鍵,自定義的鍵盤(太多精力IMO)
  • :刪除「&」和/或通知用戶不允許使用'&'(更容易)。

編輯:你也可以的UITextField的「編輯而改變」事件連接到文件的所有者的IBAction爲,並篩選出「&」在那裏。

+0

+1感謝您的迴應。:) – rptwsthi

1

據我所知,你不能直接禁用UIKeyboard上的特定按鈕。我沒有做過這樣的事情,但我知道你可以添加新的按鈕作爲子視圖到鍵盤,所以也許你可以做到這一點,並禁用該特定按鈕上的userInteraction。

鏈接顯示添加一個按鈕的鍵盤子視圖的例子:

Creating a custom UIKeyBoard for iPhone

1

沒有爲文本框一個委託方法,其中,如果你根據自己的ASCII值願意,你可以阻止特定的字符。

-(BOOL)keyboardInput:(id)k shouldInsertText:(id)i isMarkedText:(int)b 
{ 
char s=[i characterAtIndex:0]; 
    if(selTextField.tag==1) 
    { 
     if(s>=48 && s<=57 && s == 38) // 48 to 57 are the numbers and 38 is the '&' symbol 
     { 
      return YES; 
     } 
     else 
     { 
      return NO; 
     } 

    } 
} 

此方法只允許數字和符號&由用戶輸入:該方法可以按如下方式寫入。即使用戶按下其他字符,也不會輸入。因爲它是一個textField的委託方法,所以您不必擔心顯式調用它。

+0

+1爲偉大的解決方案,這將有助於許多人。 – rptwsthi

0
//Disabling the '<' '>' special characters key in Keyboard in my code 

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    NSCharacterSet *nonNumberSet = [NSCharacterSet characterSetWithCharactersInString:@"<>"]; 
    if (range.length == 1) 
     return YES; 
    else 
     return ([text stringByTrimmingCharactersInSet:nonNumberSet].length > 0); 
    return YES; 
} 
+0

嘗試代替'&'代替'&',它會起作用 – balajiaj