iOS 6.0 以降では、UITextField が期待どおりに機能しません。ユーザーが WhiteSpace を入力するように制限しようとすると、スペース バーの上の行に使用可能な文字が入力されます (例: 'C'、'V'、'B'、'N ', 'M' )。
WhiteSpace を回避するために次の行コードを使用していますが、同じコードは iOS 5.0 でも完全に機能します。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
BOOL flag = YES;
NSString *resultingString = [textField.text stringByReplacingCharactersInRange: range withString: string];
NSCharacterSet *whitespaceSet = [NSCharacterSet whitespaceCharacterSet];
if ([resultingString rangeOfCharacterFromSet:whitespaceSet].location == NSNotFound)
flag = YES;
else
flag = NO;
return flag;
}
なにか提案を?