У меня есть 3 UITextField
с установленным текстом-заполнителем. В одном из UITextField
я хочу, чтобы текст заполнителя был красным.
Теперь, после поиска в Google, лучший способ сделать это - создать подкласс UITextField и переопределить drawPlaceholderInRect
.
Как создать подкласс и переопределить drawPlaceholderInRect
? Я не нашел примеров кода или руководств по этому поводу, и я ' m новичок в разработке 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;
. Примечание. Это работает, и я считаю, что это правильная практика, однако я не тестировал ее полностью. Надеюсь, этот пример поможет другим в моей ситуации.
Изменить:
Изменено
[[UIColor redColor] setFill];
на
[[UIColor colorWithRed:255.0 green:0.0 blue:0.0 alpha:0.7] setFill];
Чтобы я мог установить непрозрачность на 70%, чтобы имитировать заполнитель по умолчанию.