如何在UIviewController子类中禁用UIMenuControll(剪切,复制,粘贴,全选,删除)?

时间:2013-05-09 13:56:07

标签: iphone objective-c ios5 uimenucontroller

我已经实现了很多方法但是粘贴不会隐藏。我正在使用Xcode版本4.5.2

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    UIMenuController *menuController = [UIMenuController sharedMenuController];
    if (menuController) {
        [UIMenuController sharedMenuController].menuVisible = NO;

    }
    return NO;  
}

每种方法似乎都失败了。任何人都可以帮我吗?提前谢谢

2 个答案:

答案 0 :(得分:0)

您可以尝试:在控制器的viewDidLoad方法中,将其设置为不可见。

[[UIMenuController sharedMenuController] setMenuVisible:NO];

如果这不起作用,我猜你运气不好,因为它是系统的一部分。我看到的唯一方法是禁用用户交互与可能触发上下文菜单的对象。

答案 1 :(得分:0)

你需要做这些事情来启用/禁用UIMenuController项目。

  1. 要显示/隐藏UIMenuController项,您的视图或视图控制器需要实现canBecomeFirstResponder(为显示/隐藏返回YES / NO)。

  2. 您还可以实施UIResponder的canPerformAction:withSender:方法,根据上下文禁用或启用用户界面命令{复制,选择,全选,粘贴等}。

  3. 或者您可以覆盖Update的{​​{1}}方法来处理单个项目的自定义行为。例如,如果粘贴板不包含兼容类型的数据,则将禁用UIMenuController命令。因此,您可以强制显示/隐藏粘贴菜单项,方法是重写此方法。