NSToolbar和视图控制器层次结构

时间:2012-01-17 00:35:39

标签: cocoa nsviewcontroller nstoolbar

我有以下类层次结构:

NSViewController
  MyGeneralViewController
    ViewControllerA
    ViewControllerB

MyGeneralViewController包含ViewControllerAViewControllerB使用的一些常用代码。一段公共代码是NSToolbar的创建以及NSToolbarDelegate的必要协议方法的实现。

工具栏中的一个按钮是一个按钮,允许用户在单独的窗口中打开NSTextView(更多不动产,使用关键字的其他功能等)。

方法是:

- (IBAction) openTextWindow: (id) sender {

    [self setTextWindowController: [[TextWindowController alloc] init]];
    [[self textWindowController] showWindow];

}

此工具栏按钮仅适用于ViewControllerA控制的视图。我的理由是,如果我仅为openTextWindow实现ViewControllerA方法,那么由ViewControllerB控制的视图的工具栏按钮将变灰(不可用),因为运行时系统会上升类层次结构,用于查找为toolbarbutton定义的方法,但找不到它。

事实并非如此。当我使用MyGeneralViewController实现该方法时,该按钮始终可用(正如预期的那样,但不是我想要的)。但是当我仅为ViewControllerA实现它时,它永远不可用。

我是否遗漏了某些东西,或者这是应该如何运作的?

1 个答案:

答案 0 :(得分:0)

怪异。离开这一段时间后,我决定再给它一次。清理完项目后,一切都按预期工作。