2012-04-24 2 views
4

Я искал UIkeyboardtypenumberpad, но использовался в примере iPad.UIkeyboardtypenumberpad IPAD

Я имею в виду, что можно создать класс или представление, которое имитирует только цифровую клавиатуру, например iPhone?

Я использую версию 4.1 sdk.

Я не хочу использовать специальные символы, просто цифры и точки.

спасибо !!

ответ

8

UITextFieldDelegate добавить в файл заголовка (.h файл)

txtfield_name.keyboardType=UIKeyboardTypeNumbersAndPunctuation; 
txtfield_name.delegate=self; 

затем добавить этот метод

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

    NSString *validRegEx [email protected]"^[0-9.]*$"; //change this regular expression as your requirement  
    NSPredicate *regExPredicate =[NSPredicate predicateWithFormat:@"SELF MATCHES %@", validRegEx]; 
    BOOL myStringMatchesRegEx = [regExPredicate evaluateWithObject:string]; 
    if (myStringMatchesRegEx)  
    return YES; 
    else 
    return NO; 
} 
+1

Очень умный - это также позволяет отфильтровать нежелательные символы из внешних клавиатур. .. – Pete

+1

еще раз доказана сила регулярного выражения :) 1UP для предиката + регулярное выражение –

Смежные вопросы