文本字段占位符字体会产生问题

Textfield placeholder font creates issue

我已将按钮作为 rightView 添加到文本字段。

我已将具有自定义字体的属性文本设置为占位符文本。

我的文本字段的占位符和文本字体不同。

但是当文本字段的文本很大时,如果我 select 整个文本并删除 然后它不会以其字体显示占位符文本。它以文本字段的文本字体显示。

详细说明:

但是当我 select 打孔文本(大)并删除文本时,它会显示占位符文本:OpenSans Bold 18.0

但它应该显示占位符文本:OpenSans 18.0(常规)

我认为每次占位符时您都必须设置字体 appears/disappears。设置文本字段委托并添加此代码...

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {

    let length = (textField.text?.characters.count)! + (string.characters.count - range.length)

    // If there is text in the text field
    if (length > 0) {
        // Set textfield font
        textField.font = UIFont(name: "OpenSans Bold", size: 18)
    } else {
        // Set textfield placeholder font (or so it appears)
        textField.font = UIFont(name: "OpenSans Regular", size: 18)
    }

    return true;
}

Obj-C:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{    
    // If there is text in the text field
    if (textField.text.length + (string.length - range.length) > 0) {
        // Set textfield font
        textField.font = [UIFont fontWithName:@"OpenSans Bold" size:18];
    } else {
        // Set textfield placeholder font (or so it appears)
        textField.font = [UIFont fontWithName:@"OpenSans Regular" size:18];
    }

    return YES;
}