关于中文键盘的issue(About issue with Chinese Keyboard)

  当需要调用键盘时,有时会遮住输入框,我们一般都会将UITextField或UITextView向上移动,如下处理

1 CGRect textFieldFrame = self.textField.frame;
2 textFieldFrame.origin.y -=216;
3 self.textField.frametextFieldFrame;

  而216只是针对某些语言的键盘高度,当使用中文键盘时,它的高度是252,这样会遮住UITextField。

  因此我们在编程时需要判断键盘高度,而不是固定一个高度,下面将介绍如何获取各种输入语言的键盘高度

  获取键盘高度通知是在ios5后才有的,因此我们需要加入条件。

1 #ifdef __IPHONE_5_0
2     float version = [[[UIDevice currentDevice] systemVersion] floatValue];
3     if (version >= 5.0) {
4         [notifyCenter addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillChangeFrameNotification object:nil];
5     }
6 #endif
 1 -(void)keyboardWillShow:(NSNotification *)sender
 2 {
 3     if (!self.iKerboardIsShow) {
 4         NSDictionary *userInfo = [sender userInfo];
 5         self.iHeightOfKerboard = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height;
 6         [self keyboardWillShowOrHideAnimation:YES];
 7         [self transparentviewWillAppear:nil];
 8           self.iKerboardIsShow = YES;
 9     }
10 }

 

  

posted @ 2012-12-23 19:48  ForrestWoo  阅读(1829)  评论(1编辑  收藏  举报