我在屏幕的底部有一个工具栏(在故事板中创建,而不是在代码中创建)。然后在中间有一个UIWebView,在顶部有一个UINavigationBar(使用UITextField)。 当键盘出现时,我需要工具栏在键盘上方。
我试过了
[toolBar removeFromSuperview];
textField.inputAccessoryView = toolBar;
这"工作"但是,UIWebView消失(或者也从视图中移除)......所以对我来说不是真正的解决方案。
使用键盘监听器
- (void)keyboardWillShow:(NSNotification*)aNotification
使用此代码
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
或与此
CGRect screenRect;
CGRect windowRect;
CGRect viewRect;
// determine's keyboard height
screenRect = [[[aNotification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
windowRect = [self.view.window convertRect:screenRect fromWindow:nil];
viewRect = [self.view convertRect:windowRect fromView:nil];
CGSize kbSize = viewRect.size;
最后:
CGRect newFrame = toolBar.frame;
newFrame.origin.y = s.bounds.size.height - kbSize.height - newFrame.size.height;
toolBar.frame = newFrame;
这"工作"同样,但也存在问题。如果我在UIWebView中单击并且有输入,则会显示keyborad,但kbSize.height
与textField中的键盘不同
还有其他想法吗?