2013-04-17 127 views
4

我长按&双击手势显示UIMenuController,但没有显示。我已经按照这里给出的答案,但它仍然没有出现。 UIMenuController not showing upUIMenuController没有得到显示

下面是我的代码

- (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]; 
} 

我想上的tableView的didSelectRow得到这个事件,有什么可以拨错。

回答

6

我终于在我的代码

- (BOOL) canBecomeFirstResponder 
{ 
    return YES; 
} 

您还必须实现所有按钮的操作添加下面的方法解决了我的问题。否则,该特定的按钮将不会显示在菜单中。

+1

任何以前在iOS6上工作过的菜单不能在iOS7中工作的人? – DogCoffee