我有以下类层次结构:
NSViewController
MyGeneralViewController
ViewControllerA
ViewControllerB
MyGeneralViewController包含一些ViewControllerA和使用的通用代码ViewControllerB。一段通用代码是NSToolbar为NSToolbarDelegate.
工具栏中的一个按钮是一个按钮,它允许用户打开NSTextView一个单独的窗口(更多空间、使用关键字的附加功能等)。
方法是:
- (IBAction) openTextWindow: (id) sender {
[self setTextWindowController: [[TextWindowController alloc] init]];
[[self textWindowController] showWindow];
}
此工具栏按钮应仅可用于由 控制的视图ViewControllerA。我的理由是,如果我openTextWindow只为 实现该方法ViewControllerA,则工具栏按钮对于由 控制的视图将变为灰色(不可用)ViewControllerB,因为运行时系统将向上类层次结构查找为工具栏按钮定义的方法和没找到。
情况似乎并非如此。当我使用 实现该方法时MyGeneralViewController,该按钮始终可用(如预期的那样,但不是我想要的)。但是当我实现它只是因为ViewControllerA它永远不可用。
我是否遗漏了什么或者这是它应该工作的方式?