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, что можно носить.


person JiteshW    schedule 17.04.2013    source источник


Ответы (1)


Наконец-то я решил свою проблему, добавив метод ниже в свой код.

- (BOOL) canBecomeFirstResponder 
{
     return YES; 
}

Также необходимо реализовать действия для всех кнопок. В противном случае эта конкретная кнопка не будет отображаться в меню.

person JiteshW    schedule 17.04.2013
comment
у кого-нибудь есть ранее работающие меню на iOS6, которые не работают в iOS7? - person DogCoffee; 13.09.2013