iPhone UITextField - 更改占位符文本颜色

iPhone UITextField - 更改占位符文本颜色

我想更改我在UITextField控件中设置的占位符文本的颜色,使其变黑。

我更喜欢这样做而不使用普通文本作为占位符,并且必须覆盖所有方法来模仿占位符的行为。

我相信如果我重写这个方法:

- (void)drawPlaceholderInRect:(CGRect)rect

然后我应该能够做到这一点。但我不确定如何从此方法中访问实际的占位符对象。


狐的传说
浏览 614回答 3
3回答

慕标琳琳

自从在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.}

函数式编程

容易和无痛,可能是一些容易的替代品。_placeholderLabel.textColor不建议生产,Apple可能会拒绝您的提交。

MMTTMM

您可以这样覆盖drawPlaceholderInRect:(CGRect)rect以手动呈现占位符文本:- (void) drawPlaceholderInRect:(CGRect)rect {     [[UIColor blueColor] setFill];     [[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:16]];}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS