2012-01-17 9 views
0

Iは、次のクラス階層を持っている:NSToolbarとビューコントローラ階層

​​

MyGeneralViewControllerViewControllerAViewControllerB両方で使用されるいくつかの共通のコードを保持します。共通コードの1つは、NSToolbarの作成とNSToolbarDelegateのための必要なプロトコルメソッドの実装です。

ツールバーのボタンの1つは、ユーザーがNSTextViewを別のウィンドウ(別の不動産、キーワードなどを扱うための追加機能)に開くことを可能にするボタンです。

このための方法は次のとおりです。

- (IBAction) openTextWindow: (id) sender { 

    [self setTextWindowController: [[TextWindowController alloc] init]]; 
    [[self textWindowController] showWindow]; 

} 

このツールバーボタンのみViewControllerAによって制御されるビューのために利用可能であるべきです。私の推論では、ViewControllerAopenTextWindowメソッドしか実装していないと、実行時システムがクラス階層を上って定義されたメソッドを参照するため、ツールバーのボタンがViewControllerBによって制御されたビューに対してグレー表示されます(利用できません)。ツールバーボタンをクリックして、それを見つけません。

これは当てはまりません。私がMyGeneralViewControllerでメソッドを実装すると、ボタンはいつでも利用可能です(期待どおりではありません)。しかし、私がViewControllerAのためにそれを実装するとき、それは決して利用できません。

何か不足していますか、これは動作するはずですか?

答えて

0

奇妙です。これをしばらく残してから、私はもう一度それを与えることにしました。プロジェクトがきれいになった後、それはすべて期待通りに機能しました。