Objective-Cプログレスバーの表示方法

このQ&Aのポイント
  • Objective-Cプログレスバーを表示する方法について解説します。
  • Cocoa Bindingsを使用して0から100%の数値を入力し、使い回し可能なクラスとしてプログレスバーを作成します。
  • 注意事項として、プログレスバーではなくレベルメータの使用も検討してみてください。
回答を見る
  • ベストアンサー

Objective-C プログレスバーの表示方法について

ファイルを読むときなどに使うプログレスバーの表示方法を、模索しています。 プログレスバー自体は、0 - 100% の数値を入れようと思います。 数値の与え方は、Cocoa Bindingsにしようと思います。 出来れば、この部分を一つのクラスと扱いと思います。(使い回しが出来ることを理想とします。) Windowを、別に設けるとか、スレッドを立てるかなどの構想はたっておりません。 このような条件下で、サンプルソースコードを探しております。 後、作成をするに当たっての注意事項があれば、お聞かせください。 例えば、プログレスバーではなく、レベルメータの方が良いとか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

Objective-Cで、Cocoa bindingsを使って良いということは、AppKit使って良いということだろうから、NSProgressIndicatorを使うのがてっとり早いのでは。

参考URL:
http://developer.apple.com/documentation/Cocoa/Reference/CocoaBindingsRef/BindingsText/NSProgressIndicator.html
xcode_15
質問者

お礼

ご回答を頂きまして、有難うございます。 リファレンスマニュアルには、目を通しておきます。 処で、これを使った具体的なサンプルプログラムは、存在しないのでしょうか。

xcode_15
質問者

補足

CocoaBaindings 単体のサンプルコードは見かけますが、NSProgressIndicatorを使ったサンプルコードは見つかりませんでした。 もし、ご存知でしたら、教えていただけないでしょうか?

関連するQ&A

  • 【C++】boost threadについて

    現在visual studio 2010 を使ってC++による開発を行っています。 使用しているライブラリのソースコードを読んでいたら下記のような行を見つけたのですが、 どういった内容なのか検討が付かず、困っています。 ↓部分的で申し訳ないのですが、下記のような関数が使用されていました。   "boost::thread::yield ();"の使用例とかが解れば何がしたいのか解るのではと思っています。 --------------------------------------------------------------------------------- CloudViewer_impl (const std::string& window_name) : window_name_ (window_name), has_cloud_ (false), quit_ (false) { viewer_thread_ = boost::thread (boost::ref (*this)); while (!viewer_) { boost::thread::yield (); } } --------------------------------------------------------------------------------- 参考になるかと思い、std::this_threadのyield関数を調べると下記のように説明されていました。 [yield 関数]   現在のスレッドが通常実行を継続がオペレーティング システムに他のスレッドを実行するように通知します。 boost::thread配下の関数ということで、threadの操作をするモノだということは解るのですが、 これまで、あまりthreadを触って来なかったこともあり、見当がつきません。 不躾な質問で申し訳ありませんが、簡単なサンプルでyieldの使い方、使い処など教えて頂ければ有難いです。

  • C#で独自のスクリプトを利用するには?

     C#に関することで分らないことがあり質問させて頂きます。 教えて頂きたいことが数点あるのですが、そのうちの1つをお尋ねします。 OmegaChartという株価チャート(フリーソフト)を表示させるソフトがあります。 数値をグラフ表示させるようなものとイメージして頂ければ宜しいかと思います。 ソースは公開しているので、そちらをトレースしながら、見てはいるのですが私の理解力が足りず、 どのように処理しているのかが全然理解できません。 このソフトの何を理解したいかと言うと、このソフト中で用意されているオリジナルのスクリプト(関数)を 使って、式を入力すると計算結果が出力できる機能があります。 この機能をどのように処理すれば、再現することができるのか?というのが、今回の質問です。 Excelでも式を入力すると、計算結果が出ますが、それと同じもの考えて頂ければ宜しいかと思います。 ちなみに、OmegaChartでのスクリプトとしては、  合計算出 :Sum(数値1,数値2,・・・数値n) 平均値算出:Avg(数値1,数値2,・・・数値n)  特定の数値を数個取得 結果値:[数値1,数値2,・・・数値n] ← Each(取得する数値の数,取得する数値の対象)など 例としては、 Avg(each(5,とある種類の数値))を入力したとすると、  1. each(5,とある種類の数値)にて、5つの数値 → 結果値:数値配列[5]  2. Avg(数値配列[5])にて、配列の数値の平均値を求める といった具合になります。 OmegaChartのソースでは、  初期処理の段階で、スクリプト名とソース内部で直接処理する関数とを関連付けしている処理として  ハッシュ配列で配列の添え字に『スクリプト名』を、配列の中に呼び出される実際の処理関数を  デリゲートを使って登録しているものかと思われます。  (この表現には知識が浅いので、正確なものかは少し自信がありません。)  あとは、式を入力して、ボタンが押された段階で、式を解法する処理に入り、一つずつ関数処理を呼び出す。 アルゴリズムの解説で逆ポーランド記法というもので、数値計算式を入力されたものを処理するというのは、 いくつかのサイトで拝見しましたが、残念ながら数値そのものを使った式を処理されている例ばかりで、 スクリプトの式を解析→分解→処理するといったサンプル・解説されているサイトを見つける事ができません。  ・スクリプトを使った処理  ・スクリプト関数や引数などをどのように保持すれば、処理することが可能なのか?  ・関数の引数に別の関数を入れても処理することができるのはなぜ?   ( 例:Avg(Each(5,とある種類の数値)) )  ・この処理を理解するのに必要なこととは? また関連するアルゴリズムは? ちなみに、理想としてC#2005くらいのC#の言語機能で再現できる方法が分ると有難いです。 理由としては、冒頭でのOmegaChartのソース公開もC#2005くらいからソースを開いて見ることが できるためですが、それが困難だというのであれば、C#で扱える範囲でも構いません。 恐らく、こちらのサイトにて回答するには限界があるでしょうから、もしサンプル・解説されているサイトなど をご存知の方がおられましたら、ぜひ教えて頂けると大変助かります。 厄介な質問でしょうが、何卒宜しくお願い致します。  この質問文で言葉足りない場合には、改めて追記致します。

  • C言語でプログレスバーを表示する方法について

    初めまして。 C言語で、コンソール上にプログレスバーを表示する方法について、 どなたか教えて頂けませんでしょうか?

  • C# プログレスバーに関すること

    先ほどご質問させて頂いた件で1つ解決していなかったのですが質問のほうを閉じてしまいました. なので,もう一度ご質問させて頂きます. ic += 1; //プログレスバーの設定 //最小値 int minimum = 0; //最大値 int years = iYearE - iYearS; int hours = iHourE-iHourS; int iiMinute = iiMinuteE-iiMinuteS; int Maximun = (years+1) * Maxmonth * Maxday * (hours+1) * (iiMinute+1); progressBar1.Style = ProgressBarStyle.Continuous; progressBar1.Minimum = minimum; progressBar1.Maximum = Maximun; progressBar1.Value = ic; label8.Text = (ic / Maximun)*100 + "%処理中"; if (ic/Maximun==1) { label8.Text = "終了"; 上記の様なプログラムを組んでプログレスバーを表示させているのですが,問題はラベルの中が 変動せずに,プログラスバーがすべてたまるまで0%で,たまった瞬間に100%になってしまいます. どうすればラベルのほうの数値を徐々に大きくしていけるのでしょうか? どなたかご教示お願いたします. }

  • C#でプログレスバーを作るには?

    C#でプログレスバーを作るにはどうしたらいいのでしょうか? 例えばいくつものファイルをコピーする処理をしているプログラムがあるとします。 そういったときプログレスバーをどうカウントアップさせていけばよいのでしょうか?

  • プログレスバーの表示方法

    VB6.0 SP5 WINDOWS2000 で開発しています。 処理中のフォームをEnabled=Falseにして、 プログレスバーだけを別のフォームに表示させて、 処理中はプログレスバーのValueをどんどん増やす。 終わるとプログレスバーのフォームを閉じて、 処理してたフォームをEnabled=Trueにしるのですが、 プログレスバーを表示させてるフォームが、変なんです。 プログレスバーが増えている状態の時、 そのフォームが透けてるような、後ろのフォームとまざってるような、 そんな感じになるんです。 これをきれいに表示させたいのですが、何か良い方法はないものでしょうか?

  • プログレスバーのスムース表示ができない

    こんにちは、VisualStadio2003.netでMFCを使用してVC++でダイアログベースのソフトを作成しています。 ダイアログにプログレスバーを貼り付けてスムース表示にしたいのですがプロパティのスムースをチェックしてもスムース表示になりません。 リソースをエディタで開いてみてPBS_SMOOTHの0x01フラグは付け足されているようです。 また手動でプログレスをCreate(PBS_SMOOTH)してもだめでした。 コントロールDLLのバージョンとかそのほかの設定の問題でしょうか? 教えてください。困っています。

  • Objective-Cについて

    今、Objective-Cを独学で勉強しているのですが、 プログラムで int a1; int a2; int b1 = 1; int b2 = 1; a1 = ++b1; a2 = b2++; NSLog(@"変数a1の値は%dです\n", a1); NSLog(@"変数a2の値は%dです\n", a2); NSLog(@"変数b1の値は%dです\n", b1); NSLog(@"変数b2の値は%dです\n", b2); これで「Run」を押すとそれぞれ、 「変数a1の値は2です」 「変数a2の値は1です」 「変数b1の値は2です」 「変数b2の値は2です」 とOutputされるのですが、この時なぜ「a2」が1と出てくるのか分かりません。 どなたか解説お願いします。

  • objective-c

    androidではテキストボックスなどがある画面デザインは主にXMLを使って表示するが objective-cは主にどのようにして画面デザインを表示するのでしょうか。

  • objective-cについて教えてください。

    以前にhtml5のcanvasに写真を読み込み、写真の一部を消したり、ペイントしたりするものを作ったのですが、それをobjective-cで作ろうしています。 [IOS]CoreGraphicsでお絵描きアプリhttp://realisapp.com/iphone/coregraphics-paint/を参考にしています。写真を読み込む部分を付け足したいのですが、どのようにすればいいのでしょうか?写真を読み込んでペイント用のレイヤーを重ねるのではなく、読み込んだ写真に直接ペインとしたり、消したりしたいと考えています。以上のような内容について教えていただきたく思い投稿しました。よろしくお願いします。