2016-03-07 58 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; 
    } 
相關問題