0

我有以下类层次结构:

NSViewController
  MyGeneralViewController
    ViewControllerA
    ViewControllerB

MyGeneralViewController包含一些ViewControllerA和使用的通用代码ViewControllerB。一段通用代码是NSToolbarNSToolbarDelegate.

工具栏中的一个按钮是一个按钮,它允许用户打开NSTextView一个单独的窗口(更多空间、使用关键字的附加功能等)。

方法是:

- (IBAction) openTextWindow: (id) sender {

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

}

此工具栏按钮应仅可用于由 控制的视图ViewControllerA。我的理由是,如果我openTextWindow只为 实现该方法ViewControllerA,则工具栏按钮对于由 控制的视图将变为灰色(不可用)ViewControllerB,因为运行时系统将向上类层次结构查找为工具栏按钮定义的方法和没找到。

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

我是否遗漏了什么或者这是它应该工作的方式?

4

1 回答 1

0

诡异的。离开这里一段时间后,我决定再试一次。在清理项目之后,一切都按预期工作。

于 2012-01-26T15:29:05.163 回答