//注册长按事件
UILongPressGestureRecognizer *longPressGesture
= [[[UILongPressGestureRecognizeralloc] initWithTarget:selfaction:@selector(longPressWebView:)] autorelease];
[longPressGesture setDelegate:self];
//添加到cell
[cell addGestureRecognizer:longPressGesture];
//长按后触发该方法
-(void)longPressWebView:(UILongPressGestureRecognizer *)gestureRecognizer
{
//判断长按状态
if ([gestureRecognizer state]==UIGestureRecognizerStateBegan)
{
//得到按的cell
UITableViewCell *cell = (UITableViewCell *)gestureRecognizer.view;
//处理选中问题
[m_tableViewdeselectRowAtIndexPath:[m_tableViewindexPathForSelectedRow] animated:NO];
[m_tableViewselectRowAtIndexPath:[m_tableViewindexPathForCell:cell] animated:NOscrollPosition:UITableViewScrollPositionNone];
//必须设置为第一响应者
[cell becomeFirstResponder];
//得到菜单栏
UIMenuController *menuController
= [UIMenuControllersharedMenuController];
[menuController setMenuVisible:NO];
//设置菜单
UIMenuItem *menuItem1 = [[UIMenuItemalloc] initWithTitle:@"删除当前" action:@selector(deleteCurrent:)];
UIMenuItem *menuItem2 = [[UIMenuItemalloc] initWithTitle:@"删除所有" action:@selector(deleteAll:)];
[menuController setMenuItems:[NSArrayarrayWithObjects:menuItem1,menuItem2, nil]];
//设置菜单栏位置
[menuController setTargetRect:cell.frameinView:cell.superview];
//显示菜单栏
[menuController setMenuVisible:YESanimated:YES];
[menuItem1 release];
[menuItem2 release];
}
}
-(void)deleteCurrent:(id)sender
{
//删除当前选中的记录
}
-(void)deleteAll:(id)sender
{
//删除所有记录
}
//哪些菜单能够显示
- (BOOL)canPerformAction:(SEL)action
withSender:(id)sender
{
if (action == @selector(deleteCurrent:)
|| action == @selector(deleteAll:))
{
returnYES;
}
else
{
returnNO;
}
}