2011-08-09 5 views
2

ドット構文でUIButtonタイトルラベルのテキストを変更することはできますか?UIButtonテキストをドット構文で変更できないのはなぜですか?

しかし、この1つはありません:私は、ドット構文でそれを行う場合は、テキストが変更されていない

[self.myButton setTitle: @"Yep" forState: UIControlStateNormal]; 

テキストの変更は、純粋なUILabelsのために働く、UIButtonは特殊なケースか何かですか?

答えて

10

これは、いくつかの異なる状態(Normal、Highlightedなど)のUIButtonのテキストを変更できるためです。 Appleは単にテキストを設定するために明示的なコードを要求することを選択しました。本当に欲しければ、おそらくこれを実装するカテゴリを作成することができます。

+0

私は多分、それにいくつかの論理があります:カテゴリと同じように、IMHOはコードを後で読むのが難しく、他の人のためにも難しくしています。たとえば、いくつかの大規模なアプリケーションを構築する場合は、クラスファイルやヘルパーなどが大きく異なることがあります。カテゴリにいくつかのメソッドを追加すると、「非表示とカスタム」機能を見つけるために、ファイル命名規則を明確にする必要があります。それは私の意見です、あなたのことは何ですか? – Centurion

+0

正直なところ、必要に応じてカテゴリを作成しても問題ありません。もちろん、数十、数百のヘルパーメソッドをクラスに追加することで、これを簡単に取り除くことができます。遠くに行くと、意図しない結果を招くことさえあります。潜在的に厄介なコードについては、よく考えたコメントを書くことを練習するならば、いつものように選択肢を守る方がはるかに簡単です。 Xcodeでは、Command + Clickを使用してメソッドの宣言を簡単に見つけることができます。 – FreeAsInBeer

+0

Command + Clickについて同意する:Ok、thanks&GL。 – Centurion

1

UIButtonのは(ここを参照してください:UIControlState)UIControlStateのいずれかのために彼らのタイトルを再構成することができます動作します。

ドット構文で特定の状態のタイトルが設定されないため、UIButtonはUIControlStateNormalのタイトルを再設定する可能性があります。これは何も設定されていません。

関連する問題