StackOverflow と Cocoa newbye の最初の質問に加えて、XCode 4 を使用しています (親切にしてください!)
シナリオ:
単純なNSPersistentDocumentマルチウィンドウ: 各ドキュメントにはwindow.nibと添付された WindowController がありますWINDOW TOOLBARのボタンを押すと、 アプリケーションは(バックグラウンドで) NSTaskを実行します。
ウィンドウ (ビュー内) に、タスクの開始時にアニメーション化され、タスクの終了時に stopAnimation になる素敵な NSProgressIndicator (不確定) を配置することにしました (通知を通じてタスク メッセージを収集します)。
サンプルコード:
NSButton --> IBAction --> WindowController のメソッド
- (IBAction)launchSim:(id)sender
{
[simcell launchTask];
[progBar startAnimation:self];
.... more code ...
}
すべてが素晴らしく完璧に機能します。
ここで (このシナリオではいつものように) 奇妙なバグが発生し、非生産的になり始めます。
MainMenu (NSMenuItem から) からも同じアクションを実行することにしました。
MainMenu.xib で:
NSMenuItem ("RUN") --> FirstResponder --> First Responder:launchSim のユーザー定義アクション (タイプ ID)
RUN メニュー項目はタスク (NSLog DEBUG メッセージがあります) を正しく実行しますが、progressBar のアニメーション (startAnimation) は開始しません!
2 つのアクションの違い:
- 最初のもの (作業中) は、WindowController が所有する Nib ファイルから呼び出されます。
- 2 つ目 (動作していない) は MainMenu.xib から呼び出され、FirstResponder に送信されます。
どちらのアクションもメソッド内のコードの他の部分を正しく実行しますが、メニューからアクションを呼び出すと、進行状況インジケーターのアニメーションが表示されません。
私は何が欠けていますか?
よろしくお願いします