これに対する複数のアプローチを見てきましたが、これを機能させることはできません。
英字のみを入力できるようにテキスト フィールドを制限しようとしています。つまり、ABCDEFabcdef (ただし、それらすべて)。
これが私の既存の方法です:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
// Check for the back space/delete
if (string.length <=0 ) {
if ([self.wordArray lastObject]) {
[self.wordArray removeObjectsInRange:range];
[self.tileCollectionView reloadData];
return YES;
}
}
// Check to make sure the word is not above 16 characters, that should be enough right?
if (textField.text.length >= 16 ) {
NSLog(@"WOOO SLOW DOWN THE TEXT IS ABOVE 16");
return NO;
} else {
[self.wordArray addObject:string];
[self.tileCollectionView reloadData];
return YES;
}
}
現在、バックスペースをチェックし、配列から最後のエントリを削除しています。また、手紙が受け入れられた場合は、その手紙をオブジェクトとして配列に追加します。これは別のものです。ただし、ALPHA チェックのロジックではこれも考慮に入れる必要があります。文字が「合法」である場合にのみ、配列に追加してコレクション ビューをリロードする必要があります。