Как показать пользовательский UIMenuItem для UITableViewCell?

Я хочу, чтобы UIMenuController всплывал, когда я долго жму UITableViewCell, чтобы показать пользовательские UIMenuItems.

Я настроил пользовательский элемент в viewDidLoad

UIMenuItem *testMenuItem = [[UIMenuItem alloc] initWithTitle:@"Test" action:@selector(test:)];
[[UIMenuController sharedMenuController] setMenuItems: @[testMenuItem]];

И тогда я установил все правильные методы делегата.

- (BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}

-(BOOL)tableView:(UITableView *)tableView canPerformAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender {
    return (action == @selector(copy:) || action == @selector(test:));
}

- (BOOL)tableView:(UITableView *)tableView performAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender {
    if (action == @selector(copy:)) {
         // do stuff
    }

    return YES;
}

Но все, что он делает, это показывает "Копировать» пункт, так как я разрешаю только это и мой пользовательский элемент. Пользовательский предмет, однако, выигралне показывай

Я понимаю, что я мог бы добавить распознаватель жестов в саму ячейку, но такой тип поражает цель общего экземпляра UIMenuController, нене так ли?

Ответы на вопрос(3)

Ваш ответ на вопрос