IPad - как набрать только 0 ~ 9 в текстовом поле? - PullRequest
2 голосов
/ 09 мая 2011

Привет
Я знаю, что на клавиатуре ipad не нравится, что iphone может установить "UIKeyboardTypeNumberPad" !!
Но если я хочу, он может только печатать и показывать цифры от 0 до 9 в текстовом поле.
Как сравнить то, чтопользовательский ключ в текстовом поле являются числами или нет ??

Спасибо заранее.

Мини

Ответы [ 4 ]

9 голосов
/ 21 апреля 2012

вместо сравнения рисунка после его отображения, сделайте это в shouldChangeCharactersInRange

, обязательно объявите делегат UITextFieldDelegate, и что-то, что я всегда забуду, убедитесь, что делегат самого textField указывает накласс, в котором есть код.

//---------------------------------------------------------------------------
- (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;
}
3 голосов
/ 09 мая 2011

Взгляните на эту ветку.Это решило мою похожую проблему.

1 голос
/ 09 мая 2011

Как насчет Как отключить клавиатуру для UITextView с клавишей возврата? ?

Идея состоит в том, что вы проверяете каждый раз, когда пользователь нажимает клавишу, и если это число, пропустите его.,В противном случае игнорируйте его.

Убедитесь, что ваш контроллер поддерживает протокол UITextViewDelegate и реализуйте метод textView:shouldChangeTextInRange:replacementText:.

0 голосов
/ 03 августа 2013
(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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...