Шрифт заполнителя шрифта создает проблему

введите описание изображения здесь

Я добавил кнопку, как rightView, в текстовое поле.

Я установил атрибутный текст с пользовательским шрифтом в качестве текста-заполнителя.

Мое текстовое поле и текстовый шрифт разные.

Но когда текст текстового поля большой, и если я выберу весь текст и удалю его, он не покажет мне текст заполнителя в его шрифте. Он отображается в текстовом шрифте текстового поля.

Подробное объяснение:

  • Текстовый шрифт текстового поля: OpenSans Bold 18.0
  • Текстовый шрифт My Textfield: OpenSans 18.0 (Regular)

Но когда я выбираю текст дыр (большой) и удаляю текст, он показывает текст владельца места в: OpenSans Bold 18.0

Но он должен показывать текст владельца места в: OpenSans 18.0 (Regular)

введите описание изображения здесь

Я думаю, вам придется устанавливать шрифт каждый раз, когда заполнитель появляется / исчезает. Установите делегат текстового поля и добавьте этот код …

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; }