UITextField の入力を英数字のみに制限しようとしています。文字と数字。ここでスタック オーバーフローに関する BOOL メソッドの実装を見つけました: https://stackoverflow.com/a/16147160/3344977
その答えを読んだ後、コードで行ったことは次のとおりです。
このプロパティをメイン ファイルのヘッダーに追加しました。
@property (nonatomic, strong) NSCharacterSet *charactersToBlock;
これを私のviewDidLoadに追加しました:
self.charactersToBlock = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
メソッドの実装を追加しました:
- (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 メソッドを間違って呼び出している可能性があります。
これを正しく実装する方法がわかりません。助けてくれてありがとう。