8

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

編集: 明確にするために、キーボードの種類は UIKeyboardTypeNumbersAndPunctuation として始まり、典型的なユーザー入力は「# カップ小麦粉」の形式であるため、ASCIICapable に変更したいと思います。ASCIICapable キーボードにはこの機能が組み込まれていることがわかったので、ASCII 対応キーボードを提示しても、最初に数字/句読点を表示しても問題ありません。

これが私のコードです:

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

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

return YES;
}
4

1 に答える 1

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;
}
于 2012-06-19T02:26:14.000 に答える