现在的位置: 首页 > 综合 > 正文

UIMenuController

2014年10月11日 ⁄ 综合 ⁄ 共 1771字 ⁄ 字号 评论关闭

//注册长按事件

   UILongPressGestureRecognizer *longPressGesture
= [[[
UILongPressGestureRecognizerallocinitWithTarget: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_tableViewindexPathForSelectedRowanimated:NO];

       [m_tableViewselectRowAtIndexPath:[m_tableViewindexPathForCell:cell] animated:NOscrollPosition:UITableViewScrollPositionNone];

       //必须设置为第一响应者

       [cell becomeFirstResponder];

       

       //得到菜单栏

       UIMenuController *menuController
= [
UIMenuControllersharedMenuController];

       [menuController setMenuVisible:NO];

       //设置菜单

       UIMenuItem *menuItem1 = [[UIMenuItemallocinitWithTitle:@"删除当前" action:@selector(deleteCurrent:)];

       UIMenuItem *menuItem2 = [[UIMenuItemallocinitWithTitle:@"删除所有" 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;

   }

}

抱歉!评论已关闭.