iOS5的键盘高度问题处理

        如果你将你的设备升级到iOS5,就你会发现,在新系统下,中文输入法的选字界面不再跟随光标了,而是固定贴在键盘的上方。这种设计上的改变造成实际上输入的界面相比原来的系统,高度增加了,由原来的216象素,变成252象素。并且,由于中文输入法的多样性(手写,拼音,笔划),键盘高度并不是固定升高成252象素,例如手写输入法的选字界面在右侧,所以高度仍然为216象素。

       所以,如果你的app在键盘的正上方有内容显示的话,就需要根据键盘高度,调整显示的内容。      

      例如下图,有道笔记的“附件”按钮和“隐藏键盘”按钮就浮动在键盘的正上方,如果不做调整,就会被多出来一行的选字界面挡住。       iOS5的键盘高度问题处理_第1张图片       


那么具体怎么解决呢?可以用 UIKeyboardWillShowNotification通知来获得当键盘改变时,该键盘的高度和位置。然后调整自己相应的UI元素位置即可,示例代码如下:

-(void)viewDidLoad{

   [superviewDidLoad];

   [[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyboardWillShow:)name:UIKeyboardWillShowNotificationobject:nil];

}

-(void)viewDidUnload{

   [superviewDidUnload];

   [[NSNotificationCenterdefaultCenter]removeObserver:self];

}

-(void)keyboardWillShow:(NSNotification*)notification{

   NSDictionary*info=[notificationuserInfo];

   CGSizekbSize=[[infoobjectForKey:UIKeyboardFrameEndUserInfoKey]CGRectValue].size;

   NSLog(@"keyboard changed, keyboard width = %f, height = %f", 

          kbSize.width,kbSize.height);

   //在这里调整UI位置

}

你可能感兴趣的:(UI,输入法,keyboard,ios5)