2011-12-06 94 views
2

我試圖以編程方式爲我的NSMenuItem對象(在MonoMac中)設置KeyEquivalent和KeyEquivalentModifierMask。對於字母數字鍵(「az」,「0-9」),這不是問題,但我確實希望能夠爲諸如F1-F12之類的鍵以及箭頭鍵,返回鍵等設置鍵等效鍵。特殊鍵的keyEquivalent字符串列表

有沒有這些可用鍵的列表?這是我目前使用的每個密鑰的代碼(通過谷歌搜索發現)

Enter/Return => @\"r" 
Escape => @"\E" 
Left Arrow => string.Format("%c", 0xF702) 
Up Arrow => string.Format("%c", 0xF700) 
Right Arrow => string.Format("%c", 0xF703) 
Down Arrow => string.Format("%c", 0xF701) 
Delete => string.Format("%c", 0x08) 
F1 => ? 
F2 => ? 
... 
F12 => ? 

我還沒有測試過所有這些。

回答

2

它們在NSKey enum中定義。


如果你想自己他們是在NSEvent.h在Mac OS X SDK中的值(見apple documentation)。該文件的GnuStep version可以在GNA中找到並應包括相同的常數,很容易將它們轉換爲C#:

enum { 
    NSUpArrowFunctionKey = 0xF700, 
    NSDownArrowFunctionKey = 0xF701, 
    NSLeftArrowFunctionKey = 0xF702, 
    NSRightArrowFunctionKey = 0xF703, 
    NSF1FunctionKey = 0xF704, 
    NSF2FunctionKey = 0xF705, 
    NSF3FunctionKey = 0xF706, 
    NSF4FunctionKey = 0xF707, 
    NSF5FunctionKey = 0xF708, 
    NSF6FunctionKey = 0xF709, 
    NSF7FunctionKey = 0xF70A, 
    NSF8FunctionKey = 0xF70B, 
    NSF9FunctionKey = 0xF70C, 
    NSF10FunctionKey = 0xF70D, 
    NSF11FunctionKey = 0xF70E, 
    NSF12FunctionKey = 0xF70F, 
    NSF13FunctionKey = 0xF710, 
    NSF14FunctionKey = 0xF711, 
    NSF15FunctionKey = 0xF712, 
    NSF16FunctionKey = 0xF713, 
    NSF17FunctionKey = 0xF714, 
    NSF18FunctionKey = 0xF715, 
    NSF19FunctionKey = 0xF716, 
    NSF20FunctionKey = 0xF717, 
    NSF21FunctionKey = 0xF718, 
    NSF22FunctionKey = 0xF719, 
    NSF23FunctionKey = 0xF71A, 
    NSF24FunctionKey = 0xF71B, 
    NSF25FunctionKey = 0xF71C, 
    NSF26FunctionKey = 0xF71D, 
    NSF27FunctionKey = 0xF71E, 
    NSF28FunctionKey = 0xF71F, 
    NSF29FunctionKey = 0xF720, 
    NSF30FunctionKey = 0xF721, 
    NSF31FunctionKey = 0xF722, 
    NSF32FunctionKey = 0xF723, 
    NSF33FunctionKey = 0xF724, 
    NSF34FunctionKey = 0xF725, 
    NSF35FunctionKey = 0xF726, 
    NSInsertFunctionKey = 0xF727, 
    NSDeleteFunctionKey = 0xF728, 
    NSHomeFunctionKey = 0xF729, 
    NSBeginFunctionKey = 0xF72A, 
    NSEndFunctionKey = 0xF72B, 
    NSPageUpFunctionKey = 0xF72C, 
    NSPageDownFunctionKey = 0xF72D, 
    NSPrintScreenFunctionKey = 0xF72E, 
    NSScrollLockFunctionKey = 0xF72F, 
    NSPauseFunctionKey = 0xF730, 
    NSSysReqFunctionKey = 0xF731, 
    NSBreakFunctionKey = 0xF732, 
    NSResetFunctionKey = 0xF733, 
    NSStopFunctionKey = 0xF734, 
    NSMenuFunctionKey = 0xF735, 
    NSUserFunctionKey = 0xF736, 
    NSSystemFunctionKey = 0xF737, 
    NSPrintFunctionKey = 0xF738, 
    NSClearLineFunctionKey = 0xF739, 
    NSClearDisplayFunctionKey = 0xF73A, 
    NSInsertLineFunctionKey = 0xF73B, 
    NSDeleteLineFunctionKey = 0xF73C, 
    NSInsertCharFunctionKey = 0xF73D, 
    NSDeleteCharFunctionKey = 0xF73E, 
    NSPrevFunctionKey = 0xF73F, 
    NSNextFunctionKey = 0xF740, 
    NSSelectFunctionKey = 0xF741, 
    NSExecuteFunctionKey = 0xF742, 
    NSUndoFunctionKey = 0xF743, 
    NSRedoFunctionKey = 0xF744, 
    NSFindFunctionKey = 0xF745, 
    NSHelpFunctionKey = 0xF746, 
    NSModeSwitchFunctionKey = 0xF747 
}; 
+3

他們在[NSKey(http://api.xamarin.com/index .aspx?link = T%3aMonoMac.AppKit.NSKey%2f%2a) –

+0

@mhutch謝謝,但你應該回答,你的回答比我的好很多。 –