UIMenuController не отображается
Я отображаю UIMenuController при длительном нажатии и двойном касании, но он не отображается. Я следовал за ответами, данными здесь, но это все еще не обнаруживается. UIMenuController не отображается
Ниже мой код
- (void) doubleTap:(UITapGestureRecognizer *)gesture
{
[self becomeFirstResponder];
CGPoint location = [gesture locationInView:[gesture view]];
UIMenuController *menuController = [UIMenuController sharedMenuController];
UIMenuItem *resetMenuItem = [[UIMenuItem alloc] initWithTitle:@"DoubleTap" action:@selector(hideKeyboard)];
[menuController setMenuItems:[NSArray arrayWithObject:resetMenuItem]];
[menuController setTargetRect:CGRectMake(location.x, location.y, 0.0f, 0.0f) inView:[gesture view]];
[menuController setMenuVisible:YES animated:YES];
}
- (void) longPress:(UITapGestureRecognizer *)gesture
{
[self becomeFirstResponder];
CGPoint location = [gesture locationInView:[gesture view]];
UIMenuController *menuController = [UIMenuController sharedMenuController];
UIMenuItem *resetMenuItem = [[UIMenuItem alloc] initWithTitle:@"LongPress" action:@selector(hideKeyboard)];
[menuController setMenuItems:[NSArray arrayWithObject:resetMenuItem]];
[menuController setTargetRect:CGRectMake(location.x, location.y, 0.0f, 0.0f) inView:[gesture view]];
[menuController setMenuVisible:YES animated:YES];
}
- (BOOL)becomeFirstResponder
{
return YES;
}
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(copy:))
{
return YES;
}
return [super canPerformAction:action withSender:sender];
}
Я пытаюсь получить это событие на didSelectRow tableView, что может быть.
1 ответ
Решение
Я наконец решил свою проблему, добавив ниже метод в моем коде
- (BOOL) canBecomeFirstResponder
{
return YES;
}
Вы также должны реализовать действия для всех кнопок. В противном случае эта конкретная кнопка не будет отображаться в меню.