11

アプリケーション用のプラグイン - カスタム キーボード ショートカットを作成しています。そのビューをトラバースできます。ポップアップメニューを開いてその中の項目を選択し、そのサブメニューを開いてサブメニューの項目を選択する必要があります。

performClick:今のところ、関連するNSPopUpButton要素に送信することによってのみ、トップのポップアップ メニューを開くことができます。

プログラムでメニュー内の項目を選択し、そのサブメニューを開くにはどうすればよいですか?

私はもう試した:

  • (および関連するselectItem:)を呼び出します。運が悪く、ドキュメントに「メニューがユーザー入力を追跡している間、メニューの項目の追加、削除、変更などのメニューへのプログラムによる変更は反映されないことに注意してください」NSPopUpButtonNSMenu
  • キーボードイベントを送信します(この回答を使用)。運が悪い-それらのイベントを送信する瞬間にいくつかのキーを保持している可能性があります
  • アクセシビリティ API を介してそれを行う方法に関する情報を見つけることができますが、現在のアプリケーション (または他のアプリケーションでも、Objective-C を使用) で使用する方法については何も見つかりません。
4

3 に答える 3

1

@LCC の回答に加えて、電話indexOfItemをかけることもできますNSMenu

NSInteger index = [item.menu indexOfItem:item];
[item.menu performActionForItemAtIndex:index];
于 2016-09-05T19:17:14.270 に答える