开发者

IPad - how to only type 0~9 on textfield?

Hello

I know ipad keyboard doesn't like iphone can set "UIKeyboardTypeNumberPad"!!

But if I wanna it only can type and开发者_运维技巧 show number 0 to 9 on textfield.

How to compare what user key in on textfield are numbers or not ??

Thank in advance.

Mini


instead of comparing a figure after it is displayed, do it in the shouldChangeCharactersInRange

be sure to declare the delegate UITextFieldDelegate, and something i always forget, make sure the delegate of the textField itself is pointing at the class that has the code in it.

//---------------------------------------------------------------------------
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if ([string length] == 0 && range.length > 0)
    {
        textField.text = [textField.text stringByReplacingCharactersInRange:range withString:string];
        return NO;
    }

    NSCharacterSet *nonNumberSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet];
    if ([string stringByTrimmingCharactersInSet:nonNumberSet].length > 0)return YES;

    return NO;
}


Take a look at this thread. It solved my similar problem.


How about How to dismiss keyboard for UITextView with return key??

The idea is you check every time the user hits a key, and if it is a number let it through. Otherwise ignore it.

Make your Controller supports the UITextViewDelegate protocol and implement the textView:shouldChangeTextInRange:replacementText: method.


(BOOL) textField: (UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString: (NSString *)string {

    NSNumberFormatter * nf = [[NSNumberFormatter alloc] init];
    [nf setNumberStyle:NSNumberFormatterNoStyle];

    NSString * newString = [NSString stringWithFormat:@"%@%@",textField.text,string];
    NSNumber * number = [nf numberFromString:newString];

    if (number) {
         return YES;

    } else
        return NO;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜