2012-06-19 96 views
8

我試圖在用戶鍵入空格時將UIKeyboardType更改爲字母鍵盤,從而映射鍵入撇號的效果。但是,我的代碼不會改變鍵盤外觀,直到用戶解散鍵盤然後再次將其返回。根據文本輸入更改UIKeyboardType

編輯:爲了澄清,鍵盤類型啓動爲UIKeyboardTypeNumbersAndPunctuation,我想更改爲ASCIICapable,因爲典型的用戶輸入是「#cups flour」的形式。我意識到,ASCIICapable鍵盤具有內置的這種功能,因此提供支持ASCII的鍵盤但首先顯示數字/標點符號將起作用。

這裏是我的代碼:

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

    if ([string isEqualToString:@" "]) { 
     textField.keyboardType = UIKeyboardTypeASCIICapable; 
    } 

return YES; 
} 

回答

10

取消鍵盤,然後再次成爲第一個響應者。在我的代碼中,我爲textfield * tf創建了一個IBOutlet。有效。

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

    if ([string isEqualToString:@" "]) { 
     self.tf.keyboardType = UIKeyboardTypeNumberPad; 
     [textField resignFirstResponder]; 
     [self.tf becomeFirstResponder]; 
    } 

    return YES; 
} 
+0

工作完美,我應該想到這一點。感謝布魯諾。 – MaxGabriel