只是一个快速的语义问题,但是将多个IBOutlets
放在不同的类中,在Interface Builder中转到一个(例如)NSButton是否可以。我问的原因是我需要根据不同类中发生的事件启用和禁用NSButton。多个IBOutlet是否可以,或者我应该为Button创建一个控制器类,它会收到一条消息,告诉它改变按钮的状态,导致只有一个IBOutlet?
提前致谢。
@Wain
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];
}
我有另一个类(称为DragDropController)来控制NSView的一些拖放功能。从DragDropController.m文件中,我希望能够根据DragDropController类中发生的一些内容更改mergeFilesButton的状态。
我来自DragDropController
班级,我试图呼叫setMergeFilesButtonState
。
答案 0 :(得分:0)
您应该使用控制器类。视图类应该用于显示和托管控件。控件应将交互详细信息传递给控制器。控制器应该控制所有视图。
DragDropController
应该是通用的,而不是专门了解其他控制器。相反,它应该发布通知,因为它的状态发生了变化,其他控制器可以观察通知,以确定何时应该对UI进行更新。