2015-01-25 30 views
8

Tôi biết rằng tôi có thể nhận được chiều cao UIKeyboard từ UIKeyboardFrameEndUserInfoKey trên các thông báo bàn phímWillShow và keyboardDidShow được kích hoạt khi nó trở thành trả lời đầu tiên.iOS iPhone - nhận được chiều cao UIKeyboard TRƯỚC KHI keyboardWillShow

BAO GIỜ, tôi muốn biết chiều cao dự kiến ​​của bàn phím trước những sự kiện này để tôi có thể thiết lập các yếu tố thiết kế nhất định tại viewDidLoad của bộ điều khiển chế độ xem.

Vì thiết bị đang thay đổi và thanh chỉnh sửa chính tả mới thay đổi chiều cao bàn phím, tôi KHÔNG muốn mã cứng chiều cao.

Có ai biết cách nhận được chiều cao dự kiến ​​từ bàn phím có tính đến việc liệu bàn phím có tự động sửa hay không?

+0

gì chính xác làm bạn cần nó cho? Hãy cụ thể vì bạn gần như chắc chắn muốn có một cách tiếp cận khác. – Wain

+0

Lưu ý một phần câu hỏi của tôi có nội dung "Tôi muốn biết chiều cao mong đợi của bàn phím trước những sự kiện này để tôi có thể thiết lập các yếu tố thiết kế nhất định tại viewDidLoad của bộ điều khiển chế độ xem". Để mở rộng trên điều này: Tôi có các yếu tố được bố trí dựa trên chiều cao của bàn phím nhưng không đáp ứng với nó được nâng lên. – Zigglzworth

+2

Bạn không thể biết trước. Chiều cao bàn phím có thể khác nhau đối với từng trường văn bản hoặc chế độ xem văn bản trên màn hình. Người ta có thể có một 'inputAccessoryView' và cái khác có thể không có. – rmaddy

Trả lời

0

Bạn có thể làm theo cách sau:

- (void)viewDidLoad { 
[super viewDidLoad]; 
[self initializeTextView]; 

} - (void) initializeTextView {

// Listen for keyboard appearances and disappearances 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(keyboardDidShow:) 
              name:UIKeyboardDidShowNotification 
              object:nil]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(keyboardDidHide:) 
              name:UIKeyboardDidHideNotification 
              object:nil]; 

myColoredTextview = [[UITextView alloc]initWithFrame:CGRectMake(0, 20, 300, 100)]; 
myColoredTextview.delegate = self; 
[self.view addSubview:myColoredTextview]; 
myColoredTextview.backgroundColor = [UIColor lightGrayColor]; 
} 

- (void)keyboardDidShow: (NSNotification *) notif{ 
// Do something here 
NSLog(@"show:%@",notif); 
NSDictionary *userInfo = [notif valueForKey:@"userInfo"]; 
CGRect kbFrame = [[userInfo objectForKey:@"UIKeyboardFrameBeginUserInfoKey"] CGRectValue]; 
NSLog(@"keboardHeight:%f",kbFrame.size.height); 

}

- (void)keyboardDidHide: (NSNotification *) notif{ 
// Do something here 
NSLog(@"hide:%@",notif); 

}

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