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