iPad 分体式键盘

2023-11-22

我正在创建一个类似于 iPad 的 iMessage 应用程序的应用程序,用于发送消息。因此,当显示键盘时,有一个输入视图锚定在消息视图和输入附件视图的底部。此外,当键盘在停靠或脱离停靠时显示时,必须正确调整消息视图的大小。

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

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

  1. 按住右下键,然后向上滑动
  2. 按住右下键,弹出菜单时选择“取消停靠”
  3. 按住右下键,弹出菜单时选择“分割”

对于情况 #1,来自 UIKeyboardWillChangeFrameNotification 的通知数据是一致的。这是数据:

userInfo = {
    UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
}

对于情况 #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}}";
}

这里奇怪的是,当我在情况 #2 或 #3 下监听 UIKeyboardDidChangeFrameNotification 时,数据按预期输入:

userInfo = {
    UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
}

为什么通知数据不同?有人找到了检测拆分键盘事件的明确方法吗?


还没有明确的方法。

我在接下来的步骤中解决了这个问题:

  1. 获取当前方向。
  2. 如果方向是横向那么我得到heightUIKeyboardFrameEndUserInfoKey 的。它必须等于216。这意味着键盘是分屏模式,否则不是;
  3. 如果方向是纵向那么我得到heightUIKeyboardFrameEndUserInfoKey 的。它必须等于216。这意味着键盘是分屏模式,否则不是;

我更新我的例如要点。用convertRect方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iPad 分体式键盘 的相关文章

  • 使用 Java 创建 plist

    有没有一种简单的方法可以用Java创建plist 结果应该与 Objective C 中序列化字典相同 The PList http code google com p xmlwise source browse trunk src mai
  • ld:仅在 64 位 iPhone 上找不到架构 armv7s 错误的符号

    我收到 ld symbol s not found for Architecture armv7s 错误 但仅当我在 iPhone 64 位上运行它时才收到 它适用于 iOS6 和 iOS7 的 32 位手机 也适用于 64 位 iOS7
  • 创建 DOMElement Objective C 的位图

    我有一个 Webkit DOMElement 例如一个 div 现在我想要它的渲染 NSImage 或 NSBitmapImageRep 它就像 DOMElement 的屏幕截图 公共 API 选择 NSView cacheDisplayI
  • 当我使用 ASIHTTPRequest 和 SBJSON 时,iOS 5.1 出现错误

    我收到此错误 Undefined symbols for architecture i386 OBJC CLASS ASIHTTPRequest referenced from objc class ref in FirstViewCont
  • Objective-C 中的前向声明枚举

    我在 Objective C 程序中的枚举可见性方面遇到问题 我有两个头文件 其中一个定义了typedef enum 另一个文件需要使用typedef d type 在直C中 我会简单地 include另一个头文件 但在 Objective
  • iOS:两个 UIAlert 具有两种不同的委托方法

    我有一个 UIAlert UIAlertView alertView UIAlertView alloc initWithTitle ok message Canc delegate self cancelButtonTitle OK ot
  • 如何以编程方式设置 iOS 6/7 Delta

    当我离开 iOS6 时 我正在使用 Xcode 4 6 开发 UISplitView 应用程序 我有设计 现在我迁移到新的 Xcode5 现在我有这样的设计 UINavigationBar 完全重叠我的 UISearchBar Leo Na
  • 从 iPhone 上的 NSString 中删除 HTML 标签

    有几种不同的方法可以删除HTML tags从一个NSString in Cocoa One way http cocoa karelia com Foundation Categories NSString Flatten a string
  • Swift 和 Objective-C 框架公开其内部结构

    我正在尝试将 Swift 添加到具有公共 私有和项目文件的现有 Objective C 框架中 为了让 Swift 能够访问项目文件 我添加了一个定义新模块的模块映射 例如MyFramework Internal 通过包含所有项目标题 如下
  • 创建宏来执行默认初始化

    我有很多重复这个简单样板的方法 id myObject if myObject self myObject myObject class new return myObject 所以我想用一个简单的宏来替换它 define default
  • 如何在 iPhone 应用程序的 url 中传递字符串值

    NSURLRequest request NSURLRequest requestWithURL NSURL URLWithString http www krsconnect no community api html method ba
  • 核心数据:解决一个奇怪的 EXC_BAD_ACCESS 错误

    我在核心数据方面面临着一个非常奇怪的问题 我们来描述一下 定义 假设我有两个模型 ModelA and ModelB 在数据模型中ModelA有参考ModelB作为一对多关联 因此ModelB与 具有一对一关联ModelA Update 当
  • UIAlertView 中的 MPVolumeView?

    是否可以将 MPVolumeView 放入 UIAlertView 中 我已经尝试过put它在里面 但不显示 这可能是sizeToFit or initWithFrame 部分 有没有办法测试是否MPVolumeView实际上正在被创建吗
  • 处理 NSPropertyListSerialization 中的 CFNull 对象

    在我的应用程序中 我尝试序列化服务器响应字典并将其写入文件系统 但对于某些响应 我收到错误 属性列表格式无效 原因是服务器响应中的 CFNull 对象 现在 服务器响应将不断变化 因此我没有明确的方法来删除 CFNull 对象 下面是我的代
  • 使用 iOS 设备作为 TCP 客户端 - 无 Bonjour

    我想使用 iOS 设备作为 TCP 客户端 但我找不到可理解的 API 指南 示例来说明如何做到这一点 我试过SimpleNetworkStreams and PictureSharing 但他们都使用 Bonjour 我可以轻松建立 UD
  • 处理核心数据中的重复条目

    我有一个允许用户保存收藏夹的应用程序 我正在使用 Core Data 将收藏夹存储为托管对象 我已经编写了一些代码来防止存储重复项的可能性 但我想知道是否有更好的方法来做到这一点 每个收藏夹对象都有一个唯一的 ID 字段 在下面的代码中 我
  • insertObject:atIndex 的复杂性:

    复杂度是多少 NSArray insertObject atIndex N 或常数 另外 如何找出各种 Objective C 语句的复杂度 有一个在这里讨论 http www cocoadev com index pl NSMutable
  • UINavigationController 在后退按钮单击时向下滚动

    我正在开发一个带有多个导航控制器的 iPhone iPad 应用程序 当我在设备处于横向模式时单击视图的后退按钮时 前一个视图会垂直滚动到屏幕中 而不是像往常一样水平滚动 推送动画始终水平工作 正如它应该的那样 是什么导致了这个奇怪的问题
  • extern NSString *const 在类中。

    你好 我有这个头文件 import
  • 桌面上的 AVAudioSession?

    在 mac 桌面上 我试图录制系统声音 以及可选的麦克风声音 但一开始我只是录制系统声音 我正在遵循本指南 https www appcoda com ios avfoundation framework tutorial https ww

随机推荐