Iは、次のクラス階層を持っている:NSToolbarとビューコントローラ階層
MyGeneralViewController
はViewControllerA
とViewControllerB
両方で使用されるいくつかの共通のコードを保持します。共通コードの1つは、NSToolbar
の作成とNSToolbarDelegate
のための必要なプロトコルメソッドの実装です。
ツールバーのボタンの1つは、ユーザーがNSTextView
を別のウィンドウ(別の不動産、キーワードなどを扱うための追加機能)に開くことを可能にするボタンです。
このための方法は次のとおりです。
- (IBAction) openTextWindow: (id) sender {
[self setTextWindowController: [[TextWindowController alloc] init]];
[[self textWindowController] showWindow];
}
このツールバーボタンのみViewControllerA
によって制御されるビューのために利用可能であるべきです。私の推論では、ViewControllerA
のopenTextWindow
メソッドしか実装していないと、実行時システムがクラス階層を上って定義されたメソッドを参照するため、ツールバーのボタンがViewControllerB
によって制御されたビューに対してグレー表示されます(利用できません)。ツールバーボタンをクリックして、それを見つけません。
これは当てはまりません。私がMyGeneralViewController
でメソッドを実装すると、ボタンはいつでも利用可能です(期待どおりではありません)。しかし、私がViewControllerA
のためにそれを実装するとき、それは決して利用できません。
何か不足していますか、これは動作するはずですか?