代码之家  ›  专栏  ›  技术社区  ›  baxterma

多个IBOutlets(来自不同的类)到一个对象

  •  0
  • baxterma  · 技术社区  · 11 年前

    这只是一个快速的语义问题,但有多个被认为可以吗 IBOutlets ,位于不同的类中,转到Interface Builder中的一个(例如)NSButton。我之所以这么问,是因为我需要根据不同类中发生的事件启用和禁用NSButton。多个IBOutlets可以吗?还是我应该为按钮创建一个控制器类,该类会收到一条消息,告诉它更改按钮的状态,从而只产生一个IBOutlet?

    提前谢谢。


    @韦恩

    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 .

    1 回复  |  直到 11 年前
        1
  •  0
  •   Wain    11 年前

    您应该使用控制器类。视图类应用于显示和承载控件。控件应将交互细节传递给控制器。控制器应控制所有视图。


    DragDropController 应该是通用的,并且不具体了解其他控制器。相反,它应该在状态更改时发布通知,其他控制器可以观察通知,以确定何时应该对UI进行更新。