9. MenuItem

原文:https://github.com/electron/electron/blob/master/docs/api/menu-item.md
译者:Lin

添加项到原生应用菜单和右键菜单

进程:主进程

查看Menu的例子。

new MenuItem(options)

  • options Object类型
    • click Function类型(可选参数)- 当菜单项被点击的时候将被使用click(menuItem, browserWindow, event)调用。
      • menuItem MenuItem类型
      • browserWindow BrowserWindow类型
      • event Event类型
    • role String类型(可选参数)- 菜单项的默认动作,当指定click属性后这个属性被忽略。
    • type String类型(可选参数)- 可以是normalseparatorsubmenucheckbox或者radio
    • label String类型(可选参数)
    • sublabel String类型(可选参数)
    • accelerator Accelerator类型(可选参数)
    • icon (NativeImage | String)类型(可选参数)
    • enabled Boolean类型(可选参数)- 如果设置为false,菜单项将变为灰色并且无法点击。
    • visible Boolean类型(可选参数)- 如果设置为false,菜单项将被完全隐藏。
    • checked Boolean类型(可选参数)- 只有菜单项被指定为checkbox或者radio类型时有效。
    • submenu (MenuItemConstructorOptions[] | Menu)类型(可选参数)- 菜单项需要被指定为submenu类型。如果submenu被设置,type: 'submenu'可以被省略。如果值不是一个Menu类型,那么它将被使用Menu.buildFromTemplate自动的转变成一个Menu类型。
    • id String类型(可选参数)- 一个单独的菜单内唯一的值。如果定义这个值,那么它可以被position参数用来指向这个项。
    • position String类型(可选参数)- 这个字段允许在给定的菜单内详细的指定项的位置。

最好对任意一个菜单项都指定可以匹配标准作用的role,而不是试图手动实现一个click函数的执行内容。内置的role行为将会给予最好的原生体验。

当使用rolelabelaccelerator是可选的,并且将默认为每个平台适当的值。

role属性可以有以下值:

  • undo
  • redo
  • cut
  • copy
  • paste
  • pasteandmatchstyle
  • selectall
  • delete
  • minimize - 最小化当前窗口。
  • close - 关闭当前窗口。
  • quit- 退出应用。
  • reload - 重载当前窗口。
  • forcereload - 忽视缓存重载当前窗口。
  • toggledevtools - 在当前窗口中切换开发工具。
  • togglefullscreen - 在当前窗口中切换全屏模式
  • resetzoom - 将聚焦的页面的缩放等级重置为原来的大小。
  • zoomin - 放大聚焦的页面10%
  • zoomout - 缩小聚焦的页面10%

MacOS中role也可以有以下附加值:

  • about - 映射到orderFrontStandardAboutPanel动作。
  • hide - 映射到hide动作。
  • hideothers - 映射到hideOtherApplications动作。
  • unhide - 映射到unhideAllApplications动作。
  • startspeaking - 映射到startSpeaking动作。
  • stopspeaking - 映射到`stopSpeakingv
  • front - 映射到arrangeInFront动作。
  • zoom - 映射到performZoom动作。
  • window - 子菜单是一个"Window"菜单。
  • help - 子菜单是一个"Help"菜单。
  • services - 子菜单是一个"Services"菜单。

当在MacOS中指定role,只有labelaccelerator是可以影响到MenuItem的选项。其他所有的选项都将被忽略。

实例的属性

下面的属性在MenuItem的实例中可用:

menuItem.enabled

一个Boolean类型的标志,标示项是否是可用的,这个属性可以被动态的改变。

menuItem.visible

一个Boolean类型的标志,标示项是否是可见的,这个属性可以被动态的改变。

menuItem.checked

一个Boolean类型的标志,标示项是否是可点击的,这个属性可以被动态的改变。

checkbox菜单项将在选中的时候切换checked属性为on或者off.

radio菜单项当它是被点击的时候,将打开它自己的checked属性,并且将关闭同菜单下的所有相邻项的这个属性。

你可以添加一个附加行为的click函数。

menuItem.label

String类型,菜单项可见标签的代表。

menuItem.click

MenuItem接收到一个点击事件时被激发的函数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,743评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,296评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,285评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,485评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,581评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,821评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,960评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,719评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,186评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,516评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,650评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,936评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,757评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,991评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,370评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,527评论 2 349

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • 原文地址:http://www.manew.com/thread-90330-1-1.html Unity编辑器最...
    小小小小小丶敏阅读 6,435评论 0 3
  • 原文:https://github.com/electron/electron/blob/master/docs/...
    Shmily落墨阅读 1,234评论 0 1
  • 原文:https://github.com/electron/electron/blob/master/docs/...
    Shmily落墨阅读 18,998评论 1 5
  • 什么是平庸。辞海告诉我,为庸碌、普通、寻常而不突出,碌碌无为者视为平庸。 不知道何时何地,自己已感觉如此,于是开始...
    青鸟飝漁阅读 813评论 2 2