3

我正在尝试做的事情:

我正在使用新的 Facebook 和 Path 应用程序使用的相同类型的侧边样式菜单。这是我所基于的代码:https ://github.com/pkluz/ZUUIRevealController (也可以单击链接查看图片)。

基本上,在我的“主”视图中,总是显示键盘。当我“显示”侧视图时,我希望键盘与主视图的其余部分一起滑开,就好像键盘连接到主视图一样。目前,它只是覆盖其他所有内容。

-

我是否应该尝试找出实现这一目标的方法?还是键盘的框架锁得很紧?

更好的是,如果你能解释一种方法来做到这一点,使用我所基于的 GitHub 代码 - 我肯定会给予赏金(虽然还不能设置它,因为这个问题需要几天) !

4

2 回答 2

6

解决了...事实证明实际上有一种非常干净的方法可以做到这一点。

UIView * activeKeyboard = activeInputView.inputAccessoryView.superview;
activeKeyboard.frame = newFrame;

就这么容易。没有未记录的 API 调用,但我仍然祈祷它通过了审批流程。

请记住,这段代码只是重要的一点,它周围还有其他代码等来实现这一切——但这不应该很难弄清楚你是否需要实现同样的目标:)

于 2012-06-09T02:50:00.163 回答
2

有可能,我已经尝试过类似的东西来复制消息应用程序的行为(用户可以通过滚动消息列表来拖动键盘)。

也就是说,没有官方认可的方法可以做到这一点,因此任何解决方案都可能是 hacky 并且可能会因操作系统更新而中断。

我这样做的方式基本上是找到UIWindow键盘所在的位置并修改其transform属性。键盘窗口当前使用 private class UITextEffectsWindow,但这可能随时更改,所以我不会依赖它。即使键盘位于您完全可以访问的窗口中(通过[[UIApplication sharedApplication] windows])这一事实也没有记录在任何地方并且可能会更改。

我不确定我是否会在已发布的应用程序中做这样的事情。如果您尝试,您必须非常防御性地编写代码,以确保在将来键盘的实现细节发生变化时它不会中断。

于 2012-06-08T06:45:44.477 回答