我有下面的類層次結構: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
實施它時,它永遠不可用。
我是否錯過了一些東西,或者這是它應該工作的方式?