点击弹出UIMenuController

iOS SDK 提供了一个名为UIMenuController的类,用来显示菜单项。UIMenuController对象可以包含一组

UIMenuItem对象(菜单项),并能在现有的视图上显示这些UIMenuItem对象。每个UIMenuItem对象都有

自己的标题和动作方法(UIMenuItem对象会向第一响应对象发送动作消息)。

每个iOS应用只有一个UIMenuController对象。当应用要显示该对象时,要先为它设置一组UIMenuItem对象,

然后设置显示位置(矩形区域),最后将其设置为可见。

//添加单击手势

- (void)viewDidLoad {
    [super viewDidLoad];

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
    [self.view addGestureRecognizer:tapGesture];
}

//实现单击手势的响应方法,获取UIMenuController对象

- (void)tapAction:(UITapGestureRecognizer *)tapGesture {
    NSLog(@"tap gesture");
    // 使整个view成为第一响应者
    //使视图成为UIMenuItem动作消息的目标(关键)
    [self.view becomeFirstResponder];
    //获取UIMenuController对象
    UIMenuController *menuCtr = [UIMenuController sharedMenuController];
    //创建一个新的标题为“菜单”的UIMenuItem
    UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"菜单" action:@selector(menuAction:)];
    //将所有创建的UIMenuItem添加上去
    menuCtr.menuItems = @[menuItem];
    //为UIMenuController对象设置显示区域
    [menuCtr setTargetRect:CGRectMake(20, 20, 100, 100) inView:self.view];
    //设置为可见(关键)
    [menuCtr setMenuVisible:YES animated:YES];
}

//下面两个方法的实现也非常重要,不然UIMenuController会无法显示

//如果要将某个自定义的UIView子类对象设置为第一响应对象,
//就必须覆盖该对象的canBecomFirstResponder方法
//覆盖该方法并返回yes(关键)
- (BOOL)canBecomeFirstResponder {
    return YES;
}

//不实现该方法的话,UIMenuController无法显示出来(关键)
- (void)menuAction:(id)sender {
//    NSLog(@"成功啦!!!!");
}

运行结果图:

时间: 2024-08-27 15:21:09

点击弹出UIMenuController的相关文章

jQuery点击弹出层,弹出模态框,点击模态框消失

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 <!DOCTYPE html>

点击弹出居中带有透明遮罩层窗口

点击弹出居中带有透明遮罩层窗口:本章节介绍一下如何点击一个按钮实现弹出一个居中窗口,并且此窗口带有半透明的遮罩层效果,此效果在当下比较流行,当然还有更为复杂的实现方式,当然效果也更为绚丽,下面介绍的代码能够简单实现此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="htt

点击弹出弹性下拉菜单效果

<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta name="keywords" content="站长,网页特效,js特效,广告代码,zzjs,zzjs.net,sky,www.zzjs.net,站长特效 网" /><meta name="

PopupWindow-----点击弹出 PopupWindow 初始化菜单

/** * 点击弹出 PopupWindow 初始化菜单 */ private void initPopupWindow() { PopupWindowAdapter adapter = new PopupWindowAdapter(); mPopDisplay.setAdapter(adapter); //mPopDisplay 是mPopView 中的listview if (mPopupWindow == null) { // mPopView view对象xml文件 mPopupWind

经验总结:WebBrowser自动点击弹出提示框alert、弹出对话框confirm、屏蔽弹出框、屏蔽弹出脚本错误的解决办法

经验总结:WebBrowser自动点击弹出提示框alert.弹出对话框confirm.屏蔽弹出框.屏蔽弹出脚本错误的解决办法 网上有好多解决方法,可是不一定好使,本人经过多次试验,针对WebBrowser控件中自动点击弹出框及禁用脚本提示问题得到如下几种实际情况的解决办法,绝对管用. 1.屏蔽弹出错误脚本 将WebBrowser控件ScriptErrorsSuppressed设置为True即可. (参考本篇博客:http://www.cnblogs.com/qqflying/archive/20

ActionBar点击弹出下拉框操作

在使用Ubuntu作为开发环境时经常需要在全局安装一些依赖框架等,这个时候就常常需要用到root权限,但是在Ubuntu下第一次使用su命令时会提示认证失败:查找资料后发现Ubuntu下root权限默认是锁定的,可能是处于安全考虑,但是作为开发人员肯定是需要root权限的. 在命令行中可以输入下面命令设置root密码,这样就能随时使用root权限了: [email protected]:~$ su 密码: su:认证失败 [email protected]:~$ sudo passwd [sud

基于jQuery鼠标点击弹出登陆框效果

基于jQuery鼠标点击弹出登陆框效果.这是一款扁平样式风格的jQuery弹出层登陆框特效.效果图如下: 在线预览   源码下载 实现的代码. html代码: <input type="button" class="one" value="点击我查看效果" /> <div class="box"> <div class="box2"> <div class=&quo

android 开发点击弹出对话框中的按钮进行页面跳转如何实现

android开发中,点击弹出对话框中的按钮进行页面跳转,如何实现?可以这样做: 可以获取对话框的点击事件,比如点击了确定然后你就跳转 AlertDialog.Builder builder = new Builder(CommentActivity.this); builder.setMessage("确定要跳转吗?"); builder.setTitle("提示"); builder.setPositiveButton("确认", new a

工作当中实际运用(3)——js原生实现鼠标点击弹出div层 在点击隐藏

function onmou(){ var divs=document.getElementById('kefuDV');//获取到你要操作的div if (divs.style.display=="none") {//下面就简单了 不一一赘述了 divs.style.display="block" }else{ divs.style.display="none" } } js原生代码实现 鼠标点击 弹出 隐藏 div隐藏