プログレスバーのサンプルです。NSProgressIndicatorクラスを主に使います。
プログラムが処理中であることを示すだけの場合、 indeterminate にチェックし、進捗を表示する場合はチェックをしないで使用するようです。
処理中であることを示すだけの場合はAjaxを使ったWebページでなどでもよく見かけるものと同様な Circlar Progress Indicator の方が良いような気がします。
indeterminate チェックするときとチェックしないときの2つのパターンがある場合に表示を統一感を持たせる場合に使えば良いのかな?
indeterminate のチェック有り、無しの使い分けについては公式サイトのこちらに記載があります。
Progress Indicators: About Progress Indicators
http://developer.apple.com/documentation/Cocoa/Conceptual/ProgIndic/Concepts/AboutProgIndic.html
現在の値の取得は doubleValue メソッド、設定は setDoubleValue: メソッドを使用します。
[progressIndicator doubleValue]
[progressIndicator setDoubleValue:0.0]
incrementBy: メソッドで現在の値に指定の値を加算します。
例えば現在の値が2.3の場合に以下のメソッドを実行すると2.4になります。
[progressIndicator incrementBy:0.1]
主な処理は以下の様になります。
- (IBAction)pushButton:(id)sender { const double incremntValue = 3.0; if ([progressIndicator doubleValue] + incremntValue < 100.0) { [progressIndicator incrementBy:incremntValue]; }else{ [progressIndicator setDoubleValue:100.0]; } NSLog(@"現在の値 : %f\n", [progressIndicator doubleValue]); }
公式の解説はこちら。
NSProgressIndicator Class Reference
http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSProgressIndicator_Class/Reference/Reference.html
日本語の解説が良い人はこちらのSatoshi Oomoriさんのページを参照下さい。
http://www.oomori.com/cocoafw/ApplicationKit/NSProgressIndicator/index.html
※注記
http://www.oomori.com/cocodesu/index.html