6月
22
22
UITextFieldのプレースホルダーの文字色を変更する方法

@takashingsです。
新作アプリ、ガンガン作っています。
今回もカスタマイズ系のお話です。
今回はUITextFieldのプレースホルダー(placeholder)の文字色を変える方法をご紹介。
まず基本的なお話。
プレースホルダーっていうのは、こういうのですね。

入力する項目で、どういうものを入力すればいいのかを知らせるものです。
何かしらの文字を入力すると、このプレースホルダーは消えます。
たとえば、iPhoneのSpotlightのこの”iPhone を検索”の部分がプレースホルダーですね。

ちなみに、プレースホルダーの文字入力はこれで設定。
self.textField.placeholder = @"プレースホルダー";
今回したいこととしては、このプレースホルダーの文字色を変えたい。
その場合は”placeholder”ではなく、こちらで設定します。
UIColor *color = [UIColor redColor]; self.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"プレースホルダー" attributes:@{ NSForegroundColorAttributeName:color }];
これでこんな感じになります。
プレースホルダーなのか若干わかりにくいですが、きちんとプレースホルダーの色が変わっています。

iOS6から使えるようです。
iOS7主流になってきているので、そこまで気にしなくてもいいですかね。。。
もしiOS5以前をカバーしているなら、分岐する必要がありますね。
使う場面的には、入力必須の部分とかでしょうか。
一部だけ色が変わっていると、目に付きやすいかと思います。
使う場面は限られるとは思いますが、こんなこともできる、ということで。
参考:Changing UITextField Placeholder font