1

ドキュメント ウィンドウ コントローラのインスタンスに奇妙な問題があるようです。makeWindowControllersNSDocument メイン クラスのオーバーライドされたメソッドから開始されたカスタム ウィンドウ コントローラーを使用したドキュメント ベースのアプリケーションがあります。

- (void)makeWindowControllers
{
     docWinController = [[DocumentWindowController alloc] initWithWindowNibName:@"MainDocument" owner:self];
     [self addWindowController:docWinController];
}// end makeWindowControllers

メイン アプリケーション ウィンドウには、ファイル オーナー (上記のウィンドウ コントローラー) に対応するアウトレットを持つ NSTextView オブジェクトが含まれています。メニュー項目を介して呼び出されるアクションがあり、テキスト ビュー textStorage オブジェクトのコンテンツを設定する必要があります。

現在、アクションは送信者がウィンドウ内のボタンなどの場合は期待どおりに機能しますが、送信者がメニュー項目の場合は機能しません。インスタンス化の問題であると予想していますが、不可解なのは、アクションで次の行を提供することです。

[[[textView textStorage] mutableString] appendFormat:@"Some text...%@\n", self];

送信者 (インターフェイス ボタンまたはメニュー項目) に応じて、2 つの異なるウィンドウ コントローラー インスタンス ID を返します。あるケース (メニュー項目) では、NSLog は次のように吐き出します。

-[DocumentWindowController myAction:] [L119]: Some text...<DocumentWindowController: 0x100195870>

それ以外の場合 (ボタン):

-[DocumentWindowController myAction:] [L119]: Some text...<DocumentWindowController: 0x113e72120>

私は何を間違っていますか?

4

0 に答える 0