Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在UIviewController子类中禁用UIMenuControl(剪切、复制、粘贴、全选、删除)?_Iphone_Objective C_Ios5_Uimenucontroller - Fatal编程技术网

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

Iphone 如何在UIviewController子类中禁用UIMenuControl(剪切、复制、粘贴、全选、删除)?,iphone,objective-c,ios5,uimenucontroller,Iphone,Objective C,Ios5,Uimenucontroller,我已经实现了很多方法,但是粘贴并没有隐藏。我使用的是Xcode版本4.5.2 -(BOOL)canPerformAction:(SEL)action withSender:(id)sender { UIMenuController *menuController = [UIMenuController sharedMenuController]; if (menuController) { [UIMenuController sharedMenuControlle

我已经实现了很多方法,但是粘贴并没有隐藏。我使用的是Xcode版本4.5.2

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

    }
    return NO;  
}

每一种方法对我来说似乎都是失败的。有人能帮我吗?提前感谢

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

[[UIMenuController sharedMenuController] setMenuVisible:NO];

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

您需要执行以下操作才能启用/禁用UIMenuController项

  • 要显示/隐藏UIMenuController项,您的视图或视图控制器需要实现
    canBecomeFirstResponder
    (返回显示/隐藏的是/否)

  • 您还可以实现UIResponder的
    canPerformAction:withSender:
    方法,根据上下文禁用或启用用户界面命令{copy、select、select all、paste等}

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


  • 尝试将您的Outlet子类化-查看我的示例中的UITextFields