8

如何更改我在UITextField控件中设置的占位符文本的颜色,使其变为黑色?

4

6 回答 6

45

使用 KVC

[yourtextfield setValue:[UIColor colorWithRed:120.0/255.0 green:116.0/255.0 blue:115.0/255.0 alpha:1.0] forKeyPath:@"_placeholderLabel.textColor"];

您可以将自己的颜色设置为占位符

于 2013-05-17T04:50:16.100 回答
13

这是通过 KVO 更改占位符颜色的最佳方法...

[txtEmailAddress setValue:[UIColor blackColor] forKeyPath:@"_placeholderLabel.textColor"];

我希望它可以帮助您更改占位符颜色。谢谢

于 2013-05-17T05:51:14.290 回答
7

您可以这样覆盖drawPlaceholderInRect:(CGRect)rect以手动呈现占位符文本:

- (void) drawPlaceholderInRect:(CGRect)rect {
[[UIColor blueColor] setFill];
[[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:16]];

}

于 2013-05-17T04:36:31.177 回答
4

您必须继承 UITextField 类并覆盖以下方法。

- (void) drawPlaceholderInRect:(CGRect)rect
{
     [[UIColor blackColor] setFill];

    [[self placeholder] drawInRect:rect withFont:[UIFont italicSystemFontOfSize:17] lineBreakMode:UILineBreakModeCharacterWrap alignment:UITextAlignmentLeft];

}
于 2013-05-17T04:39:21.520 回答
1

您可以使用它来更改占位符文本颜色。

- (void) drawPlaceholderInRect:(CGRect)rect {
    [[UIColor blueColor] setFill];
    [[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:16]];
}
于 2013-05-17T04:39:02.920 回答
1

使用以下代码。这将对您有所帮助。

 - (void) drawPlaceholderInRect:(CGRect)rect
   {
     [[UIColor redColor] setFill];
     [[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:16]];
   }
于 2013-05-17T04:39:44.210 回答