2010-04-08 4 views
17

UIKeyboardTypeNumberPad nie wyświetla klawiatury numerycznej na iPadzie. Zamiast tego wyświetla klawiaturę UIKeyboardTypeNumbersAndPunctuation.UIKeyboardTypeNumberPad - Pokaż tylko numer na iPadzie?

Czy jest coś, czego mi brakuje lub czy zostało usunięte z systemu operacyjnego iPad?

Dzięki za wskazówki!

+1

To nie jest to, że został usunięty, ale raczej, że nigdy go tam nie było. Aby to zrobić, musisz utworzyć własną klawiaturę. Zobacz: [Jak mogę odzyskać naciśnięcia klawiszy z niestandardowej klawiatury w aplikacji na iOS?] (Http://stackoverflow.com/a/13351686/937822) – lnafziger

Odpowiedz

13

wierzę, że to nie jest obecnie obsługiwana w iPhoneOS 3.2 na iPada

zacytować UITextInputTraits nagłówku pliku:

// 
// UIKeyboardType 
// 
// Requests that a particular keyboard type be displayed when a text widget 
// becomes first responder. 
// Note: Some keyboard/input methods types may not support every variant. 
// In such cases, the input method will make a best effort to find a close 
// match to the requested type (e.g. displaying UIKeyboardTypeNumbersAndPunctuation 
// type if UIKeyboardTypeNumberPad is not supported). 
// 
+1

Ale widziałem, jak to się robi na iPadzie w popover. Jak oni to zrobili? – David

+3

Najprawdopodobniej zaimplementowali to samodzielnie. – ceejayoz

2

wiem, to pytanie nie jest aktywna przez dłuższą chwilę, ale ta może pomóc komuś tam.

Możesz spróbować wdrożyć ten jeden https://github.com/azu/NumericKeypad. Koder realizowane swój numer pad kupić instacji UITextField

+0

Dzięki, to jest fajne – Justin

8

dodać UITextFieldDelegate w pliku nagłówka (.h pliku)

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

następnie dodać tę metodę

- (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

Nie robi to, o co pyta pytanie (aby wyświetlić tylko liczby na iPadzie), ale zamiast tego używa domyślnej klawiatury (z literami itp.) I ogranicza wejście tak, że dozwolone są tylko cyfry. – lnafziger