2012-04-04 17 views
0

私はUITextFieldを持っていますが、最初のテキストは "username.mysite.com"です。デフォルトの色(黒)が設定されています。UITextField内の2つの異なる色

灰色のような別の色の「username」があります。出来ますか?

「クリアボタン」をクリックすると、プレースホルダが「url」よりもユーザーがクリックできます。

答えて

2

UITextFieldで直接行うことはできません。あなたの基本的な2つのオプションは以下のとおりです。

  1. は、テキストフィールドを装っUIWebViewを使用してください。これは簡単ですが、スレッジハンマーであり、特定のユースケースでパフォーマンスの低下を招く可能性があります。

  2. 適切に構成されたNSAttributedStringを表示するには、Core Textを使用します。リンクはMac OSのように見えるが、Core TextもiOS上に存在する。フレームワークは非常に強力ですが、学習曲線は急峻で、編集可能なテキストはサポートしていません。しかし、さまざまなオープンソースライブラリがあります(例えば、DTCoreTextOHAttributedLabel)。

+0

ありがとう、私は持っています一見。 –

0

いいえ、デフォルト設定ではできません。

0

プレースホルダの色を変更するには、次のプライベートプロパティにアクセスして警告を表示しますが、うまくいくようになります。

[aTextField setValue:[UIColor yellowColor] 
      forKeyPath:@"_placeholderLabel.textColor"]; 

これを行うためにも存在する別の方法があり、あなたのカスタム実装でdrawPlaceholderInRectメソッドをオーバーライドすることができます。

+0

こんにちはRIP、私は場所の所有者ではなくプロパティテキストの色を変更したいと思います。色は、テキスト全体ではなく、「ユーザー名」の部分にすぎません。 –

+1

私はそれが直接できないと思う、あなたは次のスレッドをチェックすることができます - http://stackoverflow.com/questions/2452356/is-it-possible-to-set-multiple-color-in-uilabel – rishi

関連する問題