如何以编程方式关闭UIWebView的上下文菜单?

时间:2015-05-29 11:28:16

标签: ios objective-c uiwebview

我有一个iPad应用,其中UIWebView正在加载一个html页面,该页面由href标签中的n个电话号码组成。 在点击这些电话号码时,iOS默认contextual菜单就像弹出控制器一样显示3个默认选项,如---发送消息,添加到联系人和复制。

在某个时间点我只是将所有UIViewController弹出到rootViewController,所以当执行此操作时,如果屏幕上显示此contextual菜单,那么它不是即使视图来自包含rootViewController电话号码的视图中的UIWebView,也会被解雇。我想这是因为contextual菜单显示在UIWindow上(如UIAlertView)。

我想在此时以编程方式解除或隐藏此contextual菜单。

我试图通过以下尝试实现这一目标,

1)在viewDidDisappear

[UIMenuController sharedMenuController].menuVisible = NO;

2)我试过快速枚举,如下所示,

    for (UIView *subView in view.subviews){
        if ([subView isKindOfClass:[UIPopoverController class]]) {
            [(UIPopoverController *)subViews dismissPopoverAnimated:YES];
        }
    }
//similiarly I tried by checking for UIMenuController as well

上述尝试都没有成功实现这一目标。 任何人都可以告诉我如何以编程方式解除contextual UIWebView菜单?

提前感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

在弹出到根视图控制器之前,您可以使用

目标-C:

[self dismissViewControllerAnimated:NO completion:nil];

夫特:

self.dismissViewControllerAnimated(false, completion: nil)

摆脱上下文菜单。