我有以下类层次结构:
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
控制的视图的工具栏按钮将变灰(不可用),因为运行时系统会上升类层次结构,用于查找为toolbarbutton定义的方法,但找不到它。
事实并非如此。当我使用MyGeneralViewController
实现该方法时,该按钮始终可用(正如预期的那样,但不是我想要的)。但是当我仅为ViewControllerA
实现它时,它永远不可用。
我是否遗漏了某些东西,或者这是应该如何运作的?
答案 0 :(得分:0)
怪异。离开这一段时间后,我决定再给它一次。清理完项目后,一切都按预期工作。