尽管有所有方法,但UITableView上的UIMenuController不会显示 [英] UIMenuController On UITableView Does Not Show Up In Spite Of All Methods
本文介绍了尽管有所有方法,但UITableView上的UIMenuController不会显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有UITableView
来显示一些列表.实现了UILongPressGestureRecognizer
来接听电话,为此,我想显示用于删除,上传等操作的菜单.
I have UITableView
to display some list. Implemented UILongPressGestureRecognizer
to get calls and on this I want to display menu for delete, upload, etc actions.
以下是实施
// Registering for long press event
UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleLongPress:)];
lpgr.delegate = self;
[self.myTable addGestureRecognizer:lpgr];
长按时,我的控件开始起作用
On Long Press My control comes to function
- (IBAction)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer
{
if (gestureRecognizer.state == UIGestureRecognizerStateBegan)
{
CGPoint p = [gestureRecognizer locationInView:self.playbackTable];
NSIndexPath *indexPath = [self.playbackTable indexPathForRowAtPoint:p];
if (indexPath == nil)
{
NSLog(@"long press on table view but not on a row");
}
else
{
NSLog(@"long press on table view at section %d row %d", indexPath.section, indexPath.row);
CGPoint p = [gestureRecognizer locationInView: self.myTable];
NSIndexPath *indexPath = [self.myTable indexPathForRowAtPoint:p];
if (indexPath != nil)
{
if([self becomeFirstResponder])
{
UIMenuItem *delete = [[UIMenuItem alloc] initWithTitle:@"Delete" action:@selector(deleteFileListItem:)];
menu = [UIMenuController sharedMenuController];
[menu setMenuItems:[NSArray arrayWithObjects:delete, nil]];
[menu setTargetRect:[self.myTable rectForRowAtIndexPath:indexPath] inView:self.myTable];
[menu setMenuVisible:YES animated:YES];
}
}
}
}
}
我还实现了以下方法
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(deleteFileListItem:))
{
return YES;
}
return NO;
}
-(BOOL)canBecomeFirstResponder
{
return YES;
}
和
- (void)deleteFileListItem:(id)sender
{
// Will perform action here
}
请让我知道是否丢失任何东西或我做错了.
Please let me know if anything is missing or I am doing wrong.
推荐答案
将长按手势识别器附加到每个单元格而不是整个表格视图时,我已经成功了.我的猜测是这就是问题所在.
I've been successful when attaching a long press gesture recognizer to each cell, not the entire table view. My guess is that that's the issue here.
这篇关于尽管有所有方法,但UITableView上的UIMenuController不会显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文