我正在使用 Split View模板创建一个简单的 Split View,当然,它在纵向模式下有一个弹出窗口。我正在使用由模板生成的默认代码,该代码添加/删除工具栏项并设置弹出 Controller 并将其删除。这两个方法分别是splitViewController:willShowViewController:...和splitViewController:willHideViewController:...
我正在尝试弄清楚如果用户在显示弹出窗口时点击工具栏按钮,如何使弹出窗口消失。如果您点击弹出窗口外的任何地方,您可以在不选择项目的情况下使弹出窗口消失,但我也想让它在用户再次点击按钮时消失。
我被卡住的地方是:似乎没有一种明显、简单的方法来 Hook 工具栏按钮的操作。使用调试器,我可以知道在按钮上调用的操作是 showMasterInPopover。我承认,我不熟悉以编程方式使用选择器。
我能否以某种方式编写一个 Action 并将其设置在工具栏项上而不覆盖已经存在的 Action ?例如添加一个调用现在存在的 Action 的 Action ?或者我是否必须自己编写一个显示/隐藏弹出窗口的操作(现在大概是由 Split View Controller 在幕后完成的行为???)。
或者我是否缺少一种简单的方法来将此行为添加到此按钮而不更改为我设置的现有行为?
谢谢!
最佳答案
事实证明,通过实现 SplitViewController willPresentViewController 方法,您可以在单击 barButtonItem 时关闭弹出窗口,如下所示:
- (void) splitViewController:(UISplitViewController *)svc
popoverController: (UIPopoverController *)pc
willPresentViewController: (UIViewController *)aViewController
{
if (pc != nil) {
[pc dismissPopoverAnimated:YES];
}
}
关于ipad - 如何连接到 iPad 弹出工具栏按钮的操作方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2588425/