0

ボタンがクリックされるたびに進行状況インジケーターを表示し、 NSTaskが完了するとインジケーターを停止して非表示にすることに問題があります。

これはタイムラインである必要があります: 1- ボタンがクリックされた 2- 進行状況インジケーターが表示されます (元の非表示の状態から) 3- 進行状況インジケーターがアクティブ化されます 4- 関連する NSTask がアクティブ化されます 5- NSTask が完了するまでインジケーターを表示し続けます 6- NSTask の完了後、進行状況インジケーターを非表示にします。

プログレス インジケータをアニメーション化する方法などを知っています。これらを NSTask 完了のものと組み合わせる方法がわかりません。

事前に助けてくれてありがとう!

4

2 に答える 2

1

NSTaskのにブロックを設定できるはずですterminationHandler

NSTaskterminationHandler

于 2013-07-31T21:46:32.557 に答える
1

NSTaskのプロパティを使用terminationHandlerして、タスクの終了時に実行するブロックを設定します。そのブロックで、進行状況インジケーターを停止/非表示にします。

補遺 (コメントを参照)

大まかな概要:

NSTask *myTask = ...;
NSProgressIndicator *myIndicator = ...;

myTask.terminationHandler = ^(NSTask *theTask) { [myIndicator stopAnimation:nil]; };

NSTaskハンドラーからの情報にアクセスする必要がある場合に備えて、ハンドラーには が渡されることに注意してください。toとしてもnil渡されます - 通常は渡しますが、保持サイクルが発生し、実際にどのオブジェクトがメソッドを呼び出しているかは重要ではありません。senderstopAnimation:self

于 2013-07-31T21:43:35.593 に答える