У меня есть 3 UITextField
с набором текста заполнителя. На одном из UITextField
я хочу, чтобы текст заполнителя был красным.
Теперь, после поиска в Google, кажется, лучший способ сделать это - создать подкласс UITextField и переопределить drawPlaceholderInRect
.
Как мне подклассифицировать и переопределить drawPlaceholderInRect
? Я не нашел никаких примеров кода или учебных пособий по этому вопросу, и я новичок в Objective-C и разработке для iOS, поэтому мне было сложно разобраться с этим.
Ответ:
Создан новый класс target-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%, чтобы имитировать заполнитель по умолчанию.