6
votes

I'm trying to remove the default menu items from UIMenuController. I found this post for UIWebview or UITextView:

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

I'm trying to do this for the new iOS 5 methods where you can show a menu item on the table selection. So my class is a subclass of UIViewController that has a UITableView in it. I wasn't sure how or IF removing the default items was possible. Thanks!

2

2 Answers

1
votes

The table view delegate method -tableView:canPerformAction:forRowAtIndexPath:withSender: is for this purpose exactly.

Here is an example:

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
    }
}
-5
votes

Use this code to remove the default features of cut, copy, paste and select:

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