У меня есть 3 UITextField
с набором текста заполнителя. На одном из UITextField
я хочу, чтобы текст заполнителя был красным.
Теперь после googling кажется, что лучший способ сделать это - подкласс UITextField и переопределить drawPlaceholderInRect
.
Как перейти к подклассу и переопределению drawPlaceholderInRect
? Я не нашел примеров кода или учебников по этому вопросу, и я новичок в разработке objective-c и iOS, поэтому найти его сложно, чтобы его решить.
Ответ:
Создал новый класс objective-c под названием CustomUITextFieldPlaceholder
, который подклассифицировал UITextField
. В CustomUITextFieldPlaceholder.m
введите следующий код
@implementation CustomUITextFieldPlaceholder
- (void)drawPlaceholderInRect:(CGRect)rect {
// Set colour and font size of placeholder text
[[UIColor redColor] setFill];
[[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:12]];
}
@end
Чтобы реализовать вышеуказанное в своем проекте
#import "CustomUITextFieldPlaceholder.h"
и
IBOutlet CustomUITextFieldPlaceHolder *txtName;
Примечание. Это работает, и я считаю, что это правильная практика, однако я не полностью ее протестировал. Надеюсь, этот пример поможет другим в моей ситуации.
Edit:
Измененный
[[UIColor redColor] setFill];
для
[[UIColor colorWithRed:255.0 green:0.0 blue:0.0 alpha:0.7] setFill];
Чтобы я мог установить непрозрачность на 70%, чтобы имитировать заполнитель по умолчанию.