【问题标题】:Get show hide event of masterview controller for UISplitViewController获取 UISplitViewController 的 masterview 控制器的显示隐藏事件
【发布时间】:2014-12-05 07:18:29
【问题描述】:

我正在做一个项目,它是架构中的 Master-Detail,它是一个通用应用程序。我的 DetailViewController 导航栏中有一个搜索控件。当我开始搜索时,同时如果我滑动/点击左栏按钮以显示MasterViewController,则键盘不会关闭。

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

【问题讨论】:

  • 我的建议有效吗?
  • makboney 我添加了屏幕排序和演示项目来解决您的问题

标签: ios objective-c iphone ios7 ios8


【解决方案1】:

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

代码:

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

Solve bug

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

【讨论】:

  • 感谢 Jageen 的回复,我尝试了您的代码,但没有成功。我不确定我是否遇到与您相同的问题:(
  • @makboney 键盘没有隐藏吗?或者当您隐藏或显示主视图时我指定的委托没有调用?
  • 没有键盘仍然出现,但代理也被调用
  • frn 我只是给你代表当主视图将显示或隐藏时调用,我不确定如何隐藏键盘,你的问题是认识一个代表。如果您能给我示例代码,那么我可以帮助隐藏键盘,否则请按照我建议的链接。
  • @makboney 试试这个 [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多