我需要这个所有者在我自己的代码中绘制的选项卡完成键等效项。就像 TextMate 在本例中所做的那样。
我听说菜单绘图是基于碳的,但我不希望它是一个如此巨大的黑客。
但是无论我尝试过什么,无论我在哪里看,我都找不到任何线索。
编辑:我什至愿意接受基于碳的答案,只要在版本 >= 10.4 上运行的任何东西
我需要这个所有者在我自己的代码中绘制的选项卡完成键等效项。就像 TextMate 在本例中所做的那样。
我听说菜单绘图是基于碳的,但我不希望它是一个如此巨大的黑客。
但是无论我尝试过什么,无论我在哪里看,我都找不到任何线索。
编辑:我什至愿意接受基于碳的答案,只要在版本 >= 10.4 上运行的任何东西
The menubar, even in 10.6, is still based on Carbon. At the Carbon level, there is an API (see below) that lets you set whatever key equivalent you want on the menuitem regardless of whether the app actually maps that key equivalent to the menuitem. In other words, Carbon lets you adjust the display of the menuitem independently of the behavior. Using this API, you can set whatever keyboard shortcut you want the menuitem to display.
Unfortunately it seems the documentation for this API is no more. But you can still read the header file. I believe the API you want is in /System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Menus.h
. I know HIToolbox is not 64-bit, but I suspect the menu API must still be, given that the Cocoa menus are still based on the Carbon menus.
实现此目的的一种方法是自己绘制项目。我不确定是否有一种方法可以覆盖关键等效项上的绘图。查看MenuItemView示例代码。