获取UISplitViewController的masterview控制器的show hide事件

时间:2014-12-05 07:18:30

标签: ios objective-c iphone ios7 ios8

我正在开发一个体系结构中Master-Detail的项目,它是一个通用的应用程序。我在DetailViewController的导航栏中有一个搜索控件。当我开始搜索时,如果我滑动/点击左侧栏按钮以显示MasterViewController键盘没有消失。

我想获得MasterviewController的显示/隐藏事件。

1 个答案:

答案 0 :(得分:2)

我为您的问题找到了解决方案
下面是一个委托方法,当用户滑动显示或隐藏主视图时,将调用该方法,您可以在其中编写隐藏键盘的代码

代码:

- (void)splitViewController:(UISplitViewController *)svc willChangeToDisplayMode:(UISplitViewControllerDisplayMode)displayMode NS_AVAILABLE_IOS(8_0)
{
    // Write code to hide keyboad
    // --------- Code is not tested but it must work ---------------------------
     [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
    // -------------------------------------------------------------------------
}

<小时/> 示例项目
Link

<强>输出
Having bug
enter image description here
Solve bug
enter image description here

步骤测试
1]以纵向模式打开项目 2]从左向右滑动以打开主视图 3]选择“搜索”。
4]从详细视图中选择“嵌入导航栏中的搜索栏” 5]点击搜索栏。
6]从左向右滑动以打开主视图 7]键盘将隐藏并显示materview。