很多人都知道iOS 5引入了一个用于拇指键入的光滑分离键盘.不幸的是,我有一些依赖于普通全屏键盘布局的UI.我的一个视图控制器向用户显示一个文本输入表,如果他们点击一个将被键盘覆盖的textField,它会随键盘一起向上滑动.拆分键盘不需要此操作.
有没有办法在弹出之前检查哪个键盘布局正在使用?
谢谢!
我正在创建一个类似于iPad的iMessage应用程序的应用程序,它可以进行消息传递.因此,当显示键盘时,有一个输入视图锚定在消息视图的底部并输入附件视图.在停靠或取消停靠时显示键盘时,必须正确调整消息视图的大小.
我遇到的问题是来自UIKeyboardWillChangeFrameNotification的通知数据不一致.
首先,用户可以通过3种方式取消键盘:
对于案例#1,来自UIKeyboardWillChangeFrameNotification的通知数据是一致的.这是数据:
userInfo = {
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
}
Run Code Online (Sandbox Code Playgroud)
对于情况#2和#3,数据不一致,这是我收到的:
userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 0;
UIKeyboardAnimationDurationUserInfoKey = "0.25";
UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
UIKeyboardCenterBeginUserInfoKey = "NSPoint: {384, 872}";
UIKeyboardCenterEndUserInfoKey = "NSPoint: {384, 1136}";
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
UIKeyboardFrameChangedByUserInteraction = 0;
UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, -264}, {768, 304}}";
}
Run Code Online (Sandbox Code Playgroud)
这里很奇怪的是,当我在#2或#3情况下监听UIKeyboardDidChangeFrameNotification时,数据按预期进入:
userInfo = {
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
}
Run Code Online (Sandbox Code Playgroud)
为什么通知数据不同?有没有人找到一种清晰的方法来检测分裂键盘事件?