2010-04-30 75 views
16

Tôi đã tìm thấy giới hạn bàn phím của iPhone trong tài liệu hướng dẫn của apple, nhưng tôi không thể tìm thấy giới hạn bàn phím của iPad. Liệu bạn có thể giúp mình không?Kích thước bàn phím iPad

Trả lời

8

Tôi chỉ tìm thấy nó nếu ai đó cần nó.
Keyboard Notification User Info Keys

+0

Bạn nên tiếp tục và chấp nhận câu trả lời của riêng bạn. –

+0

Ok, cảm ơn rất nhiều! –

18

Đối với iPhone ở chiều dọc 216 pixel, ngang 162 pixel, cho iPad theo chiều dọc, 264 pixel và trong khổ ngang 352 pixel. Điều này hợp lệ cho bàn phím Hoa Kỳ trong năm 2010.

Các kích thước này có thể khác nhau đối với các ngôn ngữ khác và có thể thay đổi đối với Hoa Kỳ.

+0

sử dụng 116 cho iPhone ở chế độ ngang. 162 vẫn còn lớn. – tallen11

+9

Bạn không nên dựa vào các phép đo này. Các ngôn ngữ khác nhau sử dụng kích thước bàn phím khác nhau. Ngay cả kích thước của bàn phím tiếng Anh Mỹ cũng có thể thay đổi trong các phiên bản tương lai của iOS. Bạn luôn phải truy vấn kích thước bàn phím theo lập trình: xem câu trả lời của @ Infinity về cách thực hiện. – titaniumdecoy

+3

-1 tôi có thực sự cần giải thích tại sao không? –

60

Toàn bộ câu trả lời trong mã trông giống như thế này. Trước tiên, bạn cần phải đăng ký các thông báo:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil]; 

và có nhiều hơn here. Lưu ý rằng bạn cũng cần phải loại bỏ chúng (sử dụng removeObserver).

Sau đó, bạn cần một phương thức nhận thông báo để nhận kích thước. Lưu ý rằng kích thước là, lúc đầu, không xoay (kể từ khi UIWindow không xoay. Nội dung của nó làm).

- (void) keyboardDidShow:(NSNotification*)notification { 
     CGRect keyboardFrame = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; 
     NSLog(@"keyboard frame raw %@", NSStringFromCGRect(keyboardFrame)); 

     UIWindow *window = [[[UIApplication sharedApplication] windows]objectAtIndex:0]; 
     UIView *mainSubviewOfWindow = window.rootViewController.view; 
     CGRect keyboardFrameConverted = [mainSubviewOfWindow convertRect:keyboardFrame fromView:window]; 
     NSLog(@"keyboard frame converted %@", NSStringFromCGRect(keyboardFrameConverted)); 
} 

Rõ ràng, nếu bạn có tham chiếu đến mainSubviewOfWindow bằng một số phương tiện khác, hãy sử dụng nó.

+0

Có, cảm ơn mã, tôi đã lười biếng viết nó xuống ... :) –

+0

Chắc chắn điều @Infinity, rất vui được giúp đỡ. –

+2

wow, cảm ơn @Yar! Đây chỉ là những gì tôi cần và cứu tôi rất nhiều đau khổ. – ragamufin

11

Xin lưu ý rằng nếu người dùng chọn sử dụng "phân chia" bàn phím trên iPad, sau đó UIKeyboardDidShowNotification/* UIKeyboardDidHideNotification * thông báo sẽ không bị sa thải. Thay vào đó, UIKeyboardDidChangeFrameNotification thông báo sẽ được kích hoạt trên cả chương trình và ẩn. Bạn sẽ phải phân tích bàn phímFrame.origin.y để tìm ra chính xác những gì xảy ra (hiển thị hoặc ẩn).

+0

Từ iOS 5. Cảm ơn! :) –

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