iPhone UITextField - プレースホルダーのテキストの色を変更する 質問する

iPhone UITextField - プレースホルダーのテキストの色を変更する 質問する

UITextFieldコントロールに設定したプレースホルダーテキストの色を黒に変更したいと思います。

通常のテキストをプレースホルダーとして使用したり、プレースホルダーの動作を模倣するためにすべてのメソッドをオーバーライドしたりせずに、これを実行したいと思います。

このメソッドをオーバーライドすると次のようになると思います:

- (void)drawPlaceholderInRect:(CGRect)rect

そうすると、これができるはずです。しかし、このメソッド内から実際のプレースホルダー オブジェクトにアクセスする方法がわかりません。

ベストアンサー1

iOS 6 の UIViews に属性付き文字列が導入されて以来、次のようにプレースホルダー テキストに色を割り当てることが可能になりました。

if ([textField respondsToSelector:@selector(setAttributedPlaceholder:)]) {
  UIColor *color = [UIColor blackColor];
  textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholderText attributes:@{NSForegroundColorAttributeName: color}];
} else {
  NSLog(@"Cannot set placeholder text's color, because deployment target is earlier than iOS 6.0");
  // TODO: Add fall-back code to set placeholder color.
}

おすすめ記事