objective-c - UIKeyBoard 在方向更改为横向时调整大小

标签 objective-c uiview uitoolbar uisplitviewcontroller uikeyboard

这是一个非常菜鸟的问题。我在底部有一个 UIToolBar,当显示 UIKeyBoard 时,它应该会随着键盘上下移动。我在 UIKeyBoard Notifications 的帮助下完成了这项工作。我们正在谈论的 View 启用了 Split View。当设备方向是横向时,两个 View 都显示为列[希望有意义]。

当显示键盘时,我这样做

CGSize keyBoardSize = [[notificationInfo objectForKey:UIKeyboardFrameEndUserInfoKey]CGRectValue].size;

CGRect toolbarFrame= [BottomToolBar frame];
toolbarFrame.origin.y -= keyBoardSize.height;    
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
BottomToolBar .frame = viewFrame;
[UIView commitAnimations];

当键盘隐藏时我会这样做

toolbarFrame.origin.y += keyBoardSize.height;

我的问题是当设备方向变为横向时,当键盘可见时底部工具栏消失了。我看到它快速上升。我不确定如何解决这个问题。有人可以帮忙吗?另外,有没有办法不让键盘跨越 Split View中的两个 View ?

最佳答案

我也有这个问题,我能想到的就是关闭键盘并重新显示它(辞职然后再次成为第一响应者)。但这似乎很不令人满意。

另请注意,您应该将矩形从屏幕坐标转换为 View 坐标。 (屏幕坐标不旋转。)

CGRect keyboardRect = [[notificationInfo objectForKey:UIKeyboardFrameEndUserInfoKey]CGRectValue];
keyboardRect = [[BottomToolBar superview] convertRect:keyboardRect fromView:nil];

更新:您必须注册 UIKeyboardWillShowNotification,然后您的操作将在界面旋转时被调用 :)

另见: https://devforums.apple.com/message/181482#181482

关于objective-c - UIKeyBoard 在方向更改为横向时调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2474671/

相关文章:

iphone - 如何删除工具栏上 UIBarButtonItems 之间的默认可用空间?

swift - 如何使用 Swift 显示工具栏按钮并将其添加到 UITableViewController

ios - didSelectRowAtIndexPath 被调用但不 prepareForSegue

ios - 我希望我可以使用 ios sdk 将相机的快门声音静音

c# - Objective C 前端 - Java/C# 后端

ios - 圆角改变 UIView 大小

iphone - UIwindow 上的 UIimageView 上的触摸事件

objective-c - CABasicAnimation 完成后重置

ios - 如何在页面之间滚动时应用 UIView 移动

iphone - - IB 中按钮在 UIToolBar 上的定位 -