質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Cocoa

CocoaはMac OS X用のアプリケーションを構築する為の主要なフレームワークのひとつです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

3691閲覧

Mac用アプリ開発:Objective Cでプログレスバーの更新を行う方法

usugita_san

総合スコア226

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Cocoa

CocoaはMac OS X用のアプリケーションを構築する為の主要なフレームワークのひとつです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2016/02/27 05:19

編集2016/02/27 05:41

Macで動作するアプリをObjectiveCで開発しています。
Macのバージョンは10.10.5です。

横に長いプログレスバーを作りました。これの進捗状況を半分にしようとしています。
この、横に長いプログレスバーは、設置した状態では全体が青くなっています。恐らく進捗が最大値なのだと思います。

ウインドウを開いた直後に半分に設定すればと思い、以下のようなソースを組みました。

SampleController.m

ObjectiveC

1- (void)windowDidLoad 2{ 3 [_progressIndicator setMinValue:0]; 4 [_progressIndicator setMinValue:100]; 5 [_progressIndicator setMinValue:50]; 6}

起動しました。プログレスバーは変わりません。
上記の値がなんであろうと一切変化しませんでした。

_progressIndicator はヘッダでプロパティとして定義しています。以下のように定義しております。

SampleController.h

ObjectiveC

1/**進捗を表示するインジケータ*/ 2@property (weak) IBOutlet NSProgressIndicator *progressIndicator;

何が足りないのでしょうか?
プログレスバーのサンプルを探しているのですが、なかなか理解できるものがなくて困っています。
よろしくお願いします。

追記1:
以下のように、小数点で設定してみてはいかがかという意見を頂きました。

ObjectiveC

1- (void)windowDidLoad 2{ 3// [_progressIndicator setMinValue:0]; 4// [_progressIndicator setMaxValue:100]; 5// [_progressIndicator setDoubleValue:0.3]; 6 _progressIndicator.doubleValue = 0.3; //30% 7}

この方法でも同じでした。
結果は変わりません。ちなみに0.0と0.1と0.2で試しましたが、表示に変化はありませんでした。
Androidでは、UIスレッドで更新しないといけない等の成約があったのですが、Macのアプリでも似たような制限があるのでしょうか?

追記2:
失礼しました。Macのバージョンを書き忘れました。
バージョンによって色々と制限が変わるんですね。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

_progressIndicator.doubleValue = 0.3; // 30%

投稿2016/02/27 05:26

sekitaka_1214

総合スコア509

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

usugita_san

2016/02/27 05:32

残念ですが、更新されなかったです…。 何か設定が必要なんでしょうか? 試した内容を追記しておきます。
sekitaka_1214

2016/02/27 06:08

IBOutlet の紐付けはできてますか? _progressindicator がnilじゃないか確認したいです
usugita_san

2016/02/27 06:38

はい、nilではありませんでした。 大変恥ずかしい事に、ProgressIndicatorのIndeterminateプロパティがTrueになっていました。 これが、一切プログレスバーが変更されない理由でした。 大変申し訳ありませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問