2

ドキュメントベースのアプリケーションがあります。

私の文書クラスでは、

  • 私は BOOL プロパティを持っています: isActionPossible.
  • IBAction : もあります- (IBAction) doTheAction:(id)sender

ではMainMenu.xib、メニュー項目をアクションに接続します。これは、Interface Builder の First Responder がアプリケーションのアクティブなドキュメントを「表す」ことを知っていれば簡単です。

しかし、この項目メニューの可用性(「有効化プロパティ」)をアクティブなドキュメントの BOOL プロパティにバインドするにはどうすればよいでしょうか?isActionPossible

実際、提案されたリストには「ファーストレスポンダー」はありません。

4

1 に答える 1

3

2 つの選択肢:

  1. メニュー検証を実装できます。Apple のドキュメントを参照してください。メニューが表示される少し前に、システムはアクションを処理する同じオブジェクト (ファーストレスポンダーを含む) に検証要求を送信します。BOOL;を返すメソッドをドキュメント クラスに追加するだけです。あなたの場合、あなたのisActionPossible財産。
  2. メイン ウィンドウに関連付けられたドキュメントを返すのcurrentDocumentプロパティを使用します。NSDocumentControllerその後、バインディングを使用してバインドできます<Document Controller>.currentDocument.isActionPossible。このアプローチは、ラベルの内容を値などにバインドしたり、メニューのバインドに使用したりできるため、より一般的です。
于 2013-04-17T18:30:35.807 に答える