2010-04-08 25 views
17

UIKeyboardTypeNumberPad không hiển thị bàn phím số trên iPad. Thay vào đó, nó hiển thị bàn phím UIKeyboardTypeNumbersAndPunctuation.UIKeyboardTypeNumberPad - Chỉ hiển thị tê liệt trên iPad?

Có điều gì tôi thiếu hoặc bị xóa khỏi hệ điều hành iPad không?

Cảm ơn bạn đã hướng dẫn!

+1

Nó không phải là nó đã bị loại bỏ, nhưng thay vào đó nó không bao giờ có ở nơi đầu tiên. Bạn phải tạo ra bàn phím của riêng bạn để làm điều này. Xem: [Làm cách nào để tôi truy xuất tổ hợp phím từ bàn phím tùy chỉnh trên ứng dụng iOS?] (Http://stackoverflow.com/a/13351686/937822) – lnafziger

Trả lời

13

Tôi tin rằng đây là không được hỗ trợ trong iPhoneOS 3.2 trên iPad

Để trích dẫn UITextInputTraits tiêu đề file:

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

Nhưng tôi đã thấy nó được thực hiện trên iPad trong một cửa sổ bật lên. Họ đã làm điều đó như thế nào? – David

+3

Họ có thể vừa mới tự triển khai. – ceejayoz

2

Tôi biết câu hỏi này đã không hoạt động trong một thời gian khá, nhưng điều này có thể giúp ai đó ngoài kia.

Bạn có thể thử triển khai số này https://github.com/azu/NumericKeypad. Các coder thực hiện số pad mình mua subclassing UITextField

+0

Cảm ơn, thật thú vị – Justin

8

thêm UITextFieldDelegate trong tập tin tiêu đề của bạn (file .h)

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

sau đó thêm phương pháp này

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

Điều này không làm những gì câu hỏi yêu cầu (chỉ hiển thị số trên iPad) mà thay vào đó sử dụng bàn phím mặc định (với chữ cái, v.v.) và giới hạn đầu vào để chỉ cho phép số. – lnafziger

Các vấn đề liên quan