Jit*_*shW 4 iphone uimenucontroller uimenuitem
我在长按和双击手势上显示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];
}
Run Code Online (Sandbox Code Playgroud)
我试图在tableView的didSelectRow上获取此事件,可能是什么.
我终于通过在我的代码中添加以下方法解决了我的问题
- (BOOL) canBecomeFirstResponder
{
return YES;
}
Run Code Online (Sandbox Code Playgroud)
您还必须为所有按钮实施操作.否则该特定按钮将不会显示在菜单中.
归档时间: |
|
查看次数: |
2284 次 |
最近记录: |