UISplitViewController仅用于详细说明inputAccessoryView

我试图根据消息input工具栏模仿苹果的iMessage应用程序。 苹果有一个UIToolbar ,它是它包含的UITextView的input附件视图,也是实际视图的inputAccessoryView 。 这样,工具栏总是存在,当键盘出现时,它随着键盘滑动。

在iPad上,他们似乎有一个UISplitViewController ,工具栏是详细视图控制器的一部分。 现在,当我有相同的设置,我的细节视图的input附件工具栏延伸到整个宽度,所以就像键盘,它也重叠主视图控制器。 另一方面,苹果以某种方式设法将input配件限制在细节视图的约束范围内。

我怎样才能做到这一点?

这是不可能的只有一个viewController在UISplitViewController 。 我的方法是将inputAccessoryView作为容器,并在其中有320px偏移量的子视图。


  - (void)setFrame:(CGRect)frame { if (RUNNING_ON_IPAD) { CGFloat superviewWidth = self.superview.bounds.size.width; CGFloat offset = 321.f; frame.origin.x = offset; frame.size.width = superviewWidth - offset; } [super setFrame:frame]; } 

而不是使用inputAccessoryView,只需在相应的视图底部添加您的accessoryView作为子视图。 然后按照以下说明使键盘同步运动: 在键盘中同步animation键盘显示键盘将同时显示硬件键盘和虚拟键盘