3

この所有者が自分のコードでタブ補完キーに相当するものを描画する必要があります。この例で TextMate が行うように。

メニューの描画は Carbon ベースだと聞きましたが、それほど大きなハックではないと思います。

しかし、どこを探しても手がかりは見つかりませんでした。

編集:バージョン>= 10.4で実行されるものなら何でも、カーボンベースの回答でも喜んで受け入れます

4

2 に答える 2

3

メニューバーは、10.6 でもまだ Carbon ベースです。Carbon レベルでは、アプリが実際にメニュー項目に相当するキーをマップするかどうかに関係なく、メニュー項目に必要な相当するキーを設定できる API (以下を参照) があります。つまり、Carbon を使用すると、動作とは独立してメニュー項目の表示を調整できます。この API を使用すると、メニュー項目に表示する任意のキーボード ショートカットを設定できます。

残念ながら、この API のドキュメントはもうないようです。ただし、ヘッダー ファイルは引き続き読み取ることができます。必要な API は にあると思います/System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/Menus.h。HIToolbox が 64 ビットではないことはわかっていますが、Cocoa メニューがまだ Carbon メニューに基づいていることを考えると、メニュー API はまだ 64 ビットである必要があると思います。

于 2009-09-01T20:34:34.353 に答える
2

これを実現する1つの方法は、アイテムを自分で描画することです。同等のキーの描画を上書きする方法があるかどうかはわかりません。MenuItemViewサンプルコードを見てください。

于 2009-08-23T21:16:52.770 に答える