0

IBOutlets簡単なセマンティックな質問ですが、Interface Builder の NSButton の 1 つ (たとえば) に移動する複数の を異なるクラスに配置しても問題ないと考えられますか? 私が尋ねる理由は、さまざまなクラスで発生するイベントに基づいて NSButton を有効または無効にする必要があるからです。複数の IBOutlet で問題ありませんか、それとも、ボタンの状態を変更するように指示するメッセージを受け取る Button のコントローラー クラスを作成して、IBOutlet を 1 つだけにする必要がありますか?

前もって感謝します。


@ウェイン

MergeFilesController.h ファイルに関連するコード:

@property (nonatomic, retain) IBOutlet NSButton *mergeFilesButton;

-(void)setMergeFilesButtonState:(BOOL)yn;

MergeFilesController.m ファイルの関連コード:

- (IBAction)mergeFiles:(id)sender {

   //Code goes here
}

- (void)setMergeFilesButtonState:(BOOL)yn {

    [mergeFilesButton setHidden:yn];
}

NSView のドラッグ アンド ドロップ機能を制御する別のクラス (DragDropController と呼ばれる) があります。DragDropController.m ファイルから、DragDropController クラス内で発生するいくつかの事柄に基づいて、mergeFilesButton の状態を変更できるようにしたいと考えています。

それはDragDropController私が呼ぼうとしていたクラスからのものsetMergeFilesButtonStateです。

4

1 に答える 1

0

コントローラー クラスを使用する必要があります。ビュー クラスは、コントロールの表示とホスティングに使用する必要があります。コントロールは、対話の詳細をコントローラーに渡す必要があります。コントローラーはすべてのビューを制御する必要があります。


DragDropController一般的であり、他のコントローラーについて具体的に認識していない必要があります。代わりに、状態が変化したときに通知を投稿する必要があり、他のコントローラーは通知を監視して、UI をいつ更新する必要があるかを判断できます。

于 2013-08-26T17:43:57.657 に答える