2016-03-07 57 views
0

我的应用程序顶部有一个菜单栏,每个菜单项都有一个名为mnemonic index的属性。它的价值通常是-1。文档确实提供了任何帮助。与菜单项有关的助记符索引是什么?它的用途是什么?应用程序菜单上下文中的助记符索引是什么?

我正在使用的环境是Flex和Adobe AIR。它是NativeMenu和NativeMenuItem的属性。

+1

查看@ SushiHangover的很好的答案......在他的例子中,请看下划线的R,G,B字母?这是一个“助记指数”为0.一个减1将意味着“未使用”或者“不支持这个操作系统”...... –

+0

恐怕我还是不明白。你是说唯一有效的值是-1和0?他为什么将它们设置为1,2,3?它是否类似于tabIndex? –

+1

对于第一个字母,索引从0开始。 '红'是R = 0,E = 1,D = 2 ..我不知道他为什么用1,他会在后面解释。我从来没有处理过-1,但通常意味着'null'不使用null(例如:不支持或不使用)。某些操作系统不使用助记符索引(“在Mac上,由于操作系统使用第一个字母或两个菜单项,因此索引是无关紧要的。”因此,使用带下划线的_e_ in Blue无关紧要,因为_bl_是自动助记符) –

回答

2

助记符是单键,不与CTRL,ALT或SHIFT键结合使用,可在打开的菜单中激活菜单命令。他们是在一个菜单项在Windows包含下划线字符,即R,G,B:

enter image description here

菜单项助记符只有在Windows上相关,OS-X不支持菜单项助记符。

注:我知道在Windows 7(下),他们的支持,但不知道他们甚至支持(节目)的Windows 8.1/10下:

enter image description here

enter image description here

var root:NativeMenu = new NativeMenu(); 
    var stackRoot:NativeMenuItem = root.addSubmenu(new NativeMenu(), "Stack"); 

    var stack:NativeMenu = new NativeMenu(); 
    stackRoot.submenu = stack; 

    var overflow1:NativeMenuItem = new NativeMenuItem("Overflow1"); 
    overflow1.mnemonicIndex = 1; 
    overflow1.keyEquivalent = "A"; 
    overflow1.addEventListener(Event.SELECT, selectCommand); 
    stack.addItem(overflow1); 

    var overflow2:NativeMenuItem = new NativeMenuItem("Overflow2"); 
    overflow2.mnemonicIndex = 2; 
    overflow2.keyEquivalent = "B"; 
    overflow2.addEventListener(Event.SELECT, selectCommand); 
    stack.addItem(overflow2); 

    var overflow3:NativeMenuItem = new NativeMenuItem("Overflow3"); 
    overflow3.mnemonicIndex = 3; 
    overflow3.keyEquivalent = "C"; 
    overflow3.addEventListener(Event.SELECT, selectCommand); 
    stack.addItem(overflow3); 

    if (NativeApplication.supportsMenu) { 
     NativeApplication.nativeApplication.menu = root; 
    } else { 
     stage.nativeWindow.menu = root; 
    } 
相关问题