0

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;
}

なにか提案を?

4

1 に答える 1

1

これを試して

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    if ([string isEqualToString:@" "])
        return NO ;

    return YES ;
}
于 2014-08-14T05:10:26.693 に答える