0

問題の特定のメニューに属する NSMenuItem に割り当てられたショートカット キーを押したときに発生する、アプリケーションの「メニュー ハイライト」を無効にしたいと考えています。

問題は、アプリケーションでキーボードをかなり使用し、メニューが常に強調表示されるのが少し面倒ですが、ユーザーにどのアクションを実行できるかを示すため、メニュー (ショートカットを含む) をそこに表示したいことです。利用される。

4

2 に答える 2

0

FFR: ドキュメントで次のメソッドを参照してください。

- (BOOL)validateMenuItem:(NSMenuItem *)menuItem 

メニュー項目の選択と関連するコマンド キーの両方で機能します。

NSDocument 内で、次のvalidateMenuItem ようなボディを提供します。

- (BOOL)validateMenuItem:(NSMenuItem *)menuItem 
{
    SEL theAction = [menuItem action];
    if (theAction == @selector(openPreferencesPanel:)) {
        return !_isCurrentlyModal;                   //A BOOL in MyDocument
    }
    return [super validateMenuItem:menuItem];           // Keep this for proper cut, paste, etc validation
}

あなたの場合、上記のセレクターはhighlight:. nib/xib をチェックして検査します。ファーストレスポンダに添付される場合があります。メソッド名をコピーします。

また、より一般的な項目 (ボタンなど) や、メニュー項目も含まれています。

- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem
于 2013-06-03T19:47:05.637 に答える
0

カスタム NSMenuItem サブクラスを宣言し、NSMenuItem の代わりにそのカスタム クラスの使用を開始します。

このクラスでは、このメソッドをオーバーライドする必要があります。

- (BOOL)isHighlighted
{
    return NO;
}

この方法では、メニュー項目が強調表示されません。

編集

これを試して:

[item setOnStateImage: item.offStateImage];
于 2013-01-03T09:44:15.953 に答える