相关疑难解决方法(0)

iPad分体键盘

我正在创建一个类似于iPad的iMessage应用程序的应用程序,它可以进行消息传递.因此,当显示键盘时,有一个输入视图锚定在消息视图的底部并输入附件视图.在停靠或取消停靠时显示键盘时,必须正确调整消息视图的大小.

我遇到的问题是来自UIKeyboardWillChangeFrameNotification的通知数据不一致.

首先,用户可以通过3种方式取消键盘:

  1. 按住右下方的键,然后向上滑动
  2. 按住右下方的键,弹出菜单时选择"取消停靠"
  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)

为什么通知数据不同?有没有人找到一种清晰的方法来检测分裂键盘事件?

objective-c keyboard-events ipad

9
推荐指数
1
解决办法
3017
查看次数

键盘隐藏了TabBar

我正在使用TabBar应用程序.在一个视图中有一个UISearchBar,当按下时,键盘出现.

问题是键盘隐藏了标签栏.

你知道怎么解决吗?

iphone tabbar uitabbar iphone-softkeyboard

8
推荐指数
2
解决办法
3616
查看次数

我可以通过代码将iPad键盘设置为停靠类型/非停靠类型/拆分类型吗?

用户可以从设备设置将键盘设置为停靠类型或拆分类型.

为了方便我们的应用程序,我们可以通过代码将iPad键盘设置为停靠类型/拆分类型吗?因为有时分体式键盘/非对接键盘最适合我们的用户界面.我搜索了很多线索,但我没有得到解决方案.

iphone keyboard ipad ios

6
推荐指数
1
解决办法
1027
查看次数