这是一个非常菜鸟的问题。我在底部有一个 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,然后您的操作将在界面旋转时被调用 :)
关于objective-c - UIKeyBoard 在方向更改为横向时调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2474671/