2012-06-19 18 views
8

ユーザーがスペースを入力してアポストロフィを入力すると、UIKeyboardTypeをアルファベットのキーボードに変更しようとしています。しかし、私のコードは、ユーザーがキーボードを閉じてから再び戻すまで、キーボードの外観を変更しません。テキスト入力に基づいてUIKeyboardTypeを変更します。

編集:明確にするために、キーボードタイプはUIKeyboardTypeNumbersAndPunctuationとして開始し、一般的なユーザー入力は「#cups flour」の形式であるため、ASCIICapableに変更します。私はASCIICapableキーボードにこの機能が組み込まれていることに気付きました。そのため、ASCII対応のキーボードを提示していますが、数字/句読点を最初に表示すると機能します。

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

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

return YES; 
} 

答えて

10

は、キーボードを閉じてから、再度ファーストレスポンダになる:

は、ここに私のコードです。私のコードでは、テキストフィールド* 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

関連する問題