iOS - 如何将文本字段提示设置为斜体(使用常规实际文本)?

Kyl*_*egg 3 iphone uitextfield ios

有没有简单的方法将文本字段的提示设置为斜体,同时保持实际文本非斜体?下图显示了我正在尝试完成的内容,但实际上并不起作用,因为键入第一个文本字段的文本仍然是斜体.

文本字段

如果没有简单的方法可以做到这一点,我想我必须在每个文本字段上实现方法来检查文本的长度,如果为零则应用斜体字体.这会奏效,对吗?有没有更好的办法?

Xav*_*Gil 5

试试这个:

UIFont* italicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];    
[yourTextField setValue:italicFont forKeyPath:@"_placeholderLabel.font"];
Run Code Online (Sandbox Code Playgroud)

编辑:

好的,这是另一种(合法的)方式:

  • 1.子类UITextField和覆盖drawPlaceholderInRect::

TextFieldSubclass.h:

@interface TextFieldSubclass : UITextField

@end
Run Code Online (Sandbox Code Playgroud)

TextFieldSubclass.m:

- (void) drawPlaceholderInRect:(CGRect)rect 
{
    [[UIColor lightGrayColor] setFill];
    UIFont* italicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
    [[self placeholder] drawInRect:rect withFont:italicFont];
}
Run Code Online (Sandbox Code Playgroud)
  • 2.更改您的UITextField类并将其设置为TextFieldSubclass:

在此输入图像描述

就是这样.请享用.