UISplitViewController detail-only inputAccessoryView

人盡茶涼 提交于 2020-01-02 03:36:08

问题


I am trying to imitate Apple's iMessage application in terms of the message input toolbar. Apple has a UIToolbar which is the input accessory view of a UITextView it contains, and also the inputAccessoryView of the actual view. That way, the toolbar is always present, and when the keyboard appears, it slides with the keyboard.

On the iPad, they seem to have a UISplitViewController, and the toolbar is part of the detail view controller. Now, when I have the same set up, my detail view's input accessory toolbar stretches to the whole width, so just like the keyboard, it also overlaps the master view controller. Apple, on the other hand, somehow managed to restrict the input accessory to the constraints of the detail view.

How can I do that?


回答1:


That's not possible to have inputAccessoryView only for one viewController in UISplitViewController. My way to do it is to have inputAccessoryView as container and have subview in it with 320px offset.


 - (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];

}



回答2:


Instead of using an inputAccessoryView, just add your accessoryView as a subview at the bottom of the appropriate view. Then synchronize movement with the keyboard as explained here: Synchronizing Animations in keyboardWillShow keyboardWillHide -- Hardware Keyboard & Virtual Keyboard Simultaneously



来源:https://stackoverflow.com/questions/24697336/uisplitviewcontroller-detail-only-inputaccessoryview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!