从TableView中的UIMenuController中删除默认剪切,复制和粘贴

时间:2012-05-08 20:09:50

标签: iphone uimenucontroller

我正在尝试从UIMenuController中删除默认菜单项。我发现了UIWebview或UITextView的这篇文章:

How to remove the default UIMenuItem from the UIMenuController in iOS?

我正在尝试为新的iOS 5方法执行此操作,您可以在表格选择中显示菜单项。所以我的类是UIViewController的子类,里面有一个UITableView。我不确定如何或如果删除默认项目是可能的。谢谢!

2 个答案:

答案 0 :(得分:1)

表视图委托方法-tableView:canPerformAction:forRowAtIndexPath:withSender:正是出于此目的。

以下是一个例子:

override func tableView(tableView: UITableView, canPerformAction action: Selector, forRowAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) -> Bool {
    switch action {
    case Selector("cut:"), Selector("copy:"), Selector("paste:"):
        return false // as per your question
    case Selector("myAction:"):
        return true
    default:
        return false
    }
}

答案 1 :(得分:-5)

使用此代码删除cutcopypasteselect的默认功能:

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