0

UITextField の入力を英数字のみに制限しようとしています。文字と数字。ここでスタック オーバーフローに関する BOOL メソッドの実装を見つけました: https://stackoverflow.com/a/16147160/3344977

その答えを読んだ後、コードで行ったことは次のとおりです。

  1. このプロパティをメイン ファイルのヘッダーに追加しました。

    @property (nonatomic, strong) NSCharacterSet *charactersToBlock;
    
  2. これを私のviewDidLoadに追加しました:

    self.charactersToBlock = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
    
  3. メソッドの実装を追加しました:

    - (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters
    {
    
    return ([characters rangeOfCharacterFromSet:self.charactersToBlock].location == NSNotFound);
    
    }
    

そして、これを入力し始めて、viewDidLoad で BOOL メソッドを呼び出してみました (_emailEntry は、ビュー コントローラーのヘッダー ファイルで作成した UITextField プロパティです)。

[_emailEntry should

しかし、xcode にはメソッドのオプションが表示されないためshouldChangeCharactersInRange、BOOL メソッドを間違って呼び出している可能性があります。

これを正しく実装する方法がわかりません。助けてくれてありがとう。

4

1 に答える 1

1

BOOL メソッドを呼び出す必要がないことに気付きました。メソッドの実装コードをビュー コントローラーに追加するだけで、準備完了です。

于 2014-03-08T04:50:30.980 に答える