質問

ユーザーにDF-DJSLのようなデータを入力する必要があるため、これをコードに入れます。

theTextField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;

しかし、残念ながら何が起こるかはキャップの最初の文字タイプですが、その後、ハイフンを入力した直後に手紙は小文字で、残りはキャップに戻り、そのような出力を生成します(ユーザーがハイフンを入力した後にシフトボタンを手動でタップしない限り):DF-DJSL

どうすればこれを修正できますか?

どうもありがとう

役に立ちましたか?

解決

どのSDKを使用しているかについては言及していませんが、3.0以上に対してあなたの希望の動作が見えます。

そうは言っても、次のようにテキストを上級ケースに変更できます。 TextFieldDidenditing 代表者からの方法:

- (void)textFieldDidEndEditing:(UITextField *)textField {
    NSString *textToUpper = [textField.text uppercaseString];   
    [theTextField setText:textToUpper];
}

または、テキストフィールドが変更されたときにテキストフィールドに通知を設定することにより、テキストが入力されているときに変更することができます。

// setup the UITextField
{
    theTextField.delegate = self;
    theTextField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
    [theTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
}

あなたはそれをこのようにしなければなりません。 uisearchbar, uitextfield 実装していません textDidchange. 。このようなもの、おそらく?

- (void)textFieldDidChange:(UITextField *)textField {
    NSRange range = [textField.text rangeOfString : @"-"];
    if (range.location != NSNotFound) {
        theTextField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top