我有下面的类层次结构:NSToolbar和视图控制器层次
MyGeneralViewController
保持由两个ViewControllerA
和ViewControllerB
中常用的一些代码。一个通用代码是NSToolbar
的创建以及NSToolbarDelegate
的必要协议方法的实现。
工具栏中的按钮之一是一个按钮,允许用户将NSTextView
打开到单独的窗口(更多房地产,用于处理关键字等的附加功能)。
这种情况的方法是:
- (IBAction) openTextWindow: (id) sender {
[self setTextWindowController: [[TextWindowController alloc] init]];
[[self textWindowController] showWindow];
}
此工具栏按钮只应可用于由ViewControllerA
控制的图。我的推理是,如果我仅对ViewControllerA
实施openTextWindow
方法,则对于由ViewControllerB
控制的视图,工具栏按钮将变为灰色(不可用),因为运行时系统将上升到类层次结构以查找定义的方法toolbarbutton并没有找到它。
这似乎并非如此。当我使用MyGeneralViewController
实现该方法时,该按钮始终可用(按预期方式,但不是我想要的)。但是,当我只为ViewControllerA
实施它时,它永远不可用。
我是否错过了一些东西,或者这是它应该工作的方式?