iOS - 键盘上方的工具栏

时间:2016-06-07 18:26:53

标签: ios objective-c uiwebview keyboard

我在屏幕的底部有一个工具栏(在故事板中创建,而不是在代码中创建)。然后在中间有一个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中的键盘不同

还有其他想法吗?

0 个答案:

没有答案