2

NSDocumentをベースにしたココアアプリがあります。2種類のドキュメントがあります。すべてのドキュメントタイプには独自のメニュー項目があり、すべての項目はmainmenu.xibで定義されています。Apple UIガイドラインで定義されているように、ドキュメントタイプに関係のないメニュー項目は灰色で表示されます。

メニュー項目が多すぎるため、ドキュメントタイプごとに関連するアイテムのみを表示したいのですが、キーバインディングによって別の問題が発生します。ドキュメントタイプAの場合、特定のキーバインディングがメニュー項目に関連付けられていますが、ドキュメントタイプBの場合は同じキーバインドです。は別のメニュー項目に関連付けられていますが、XCodeは同じキーがすでに使用されていることを検出し、前の項目定義から(正しく)削除するため、これは不可能です。

XCodeの「エディタ」メニューに似たメニューを作成したいのですが、テキストウィンドウにフォーカスがある場合はいくつかの項目が表示され、IBファイルにフォーカスがある場合はまったく異なる項目が表示されます。

ベストプラクティスはありますか?たとえば、メニューを分割します。XCodeの「エディタ」メニューに似たメニューを簡単に作成するにはどうすればよいですか?どのAPIココアがそれを行うために私たちに与えますか?

4

1 に答える 1

2

MainMenu.xibで個別のメニューを作成し、AppControllerからそれらへのアウトレットを作成できます。次に、ドキュメントにフォーカスが移ったらwindowDidBecomeMain((参照)を参照)、メインメニューの関連部分を切り替えるようにアプリコントローラーに指示します。

メインメニューの一部の切り替えは、メインメニュー階層をトロールし、適切な場所(つまり[NSMenuItem setSubmenu:]参照))に別のメニューを割り当てることによって行われます。これらのメニュー項目でInterfaceBuilderを使用してタグを設定し、[NSMenu itemWithTag:]参照)を使用してプログラムでタグを見つけることにより、これを簡単に行うことができます。

于 2012-10-24T11:56:39.887 に答える