Вы можете установить заполнитель текста, используя приписанную строку . Передайте цвет, который вы хотите с attributes
:
var myTextField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 30))
myTextField.backgroundColor = .blue
myTextField.attributedPlaceholder = NSAttributedString(string: "placeholder text",
attributes: [NSForegroundColorAttributeName: UIColor.yellow])
Для Swift 3+ используйте следующее:
myTextField.attributedPlaceholder = NSAttributedString(string: "placeholder text",
attributes: [NSAttributedStringKey.foregroundColor: UIColor.white])
Для Swift 4.2 используйте следующее:
myTextField.attributedPlaceholder = NSAttributedString(string: "placeholder text",
attributes: [NSAttributedString.Key.foregroundColor: UIColor.white])
emailTextField
?myTextField.attributedPlaceholder = NSAttributedString(string: "placeholder text", attributes: [NSForegroundColorAttributeName: UIColor.white])
Вы можете сделать это быстро, без добавления строки кода, используя Interface Builder.
Выберите
UITextField
и откройте инспектор удостоверений справа:Нажмите кнопку «плюс» и добавьте новый атрибут времени выполнения:
placeholderLabel.textColor (Swift 4)
_placeholderLabel.textColor (Swift 3 или меньше)
Используйте Цвет как тип и выберите цвет.
Вот и все.
Вы не увидите результат, пока не запустите приложение снова.
источник
Создайте
UITextField
расширение как это:И в вашей раскадровке или .xib. Ты увидишь
источник
placeHolderColor
! Если вы возвращаете само значение вычисляемого свойства из метода получения свойства, метод получения будет вызываться снова из метода получения, что приводит к бесконечной рекурсии. (См .: stackoverflow.com/a/42334711/2062785 )attributedString
первую букву (если не пустую) и в противном случае верните цвет текстаnil
.В Swift 3.0 используйте
В Siwft 5.0 + Использование
источник
Этот код работает в Swift3:
дайте мне знать, если у вас есть какие-либо проблемы.
источник
setValue
для доступа к частной собственности. Используйте правильные публичные API.#colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
Чтобы установить цвет заполнителя один раз для всех
UITextField
в вашем приложении, вы можете сделать:Это установит желаемый цвет для всех
TextField
заполнителей во всем приложении. Но это доступно только с iOS 9.До появления iOS 9 в swift нет метода appearenceWhenContainedIn .... (), но вы можете использовать одно из представленных здесь решений.
источник
В моем случае я использую Swift 4
Я создаю расширение для UITextField
источник
Xcode 9.2 Swift 4
источник
Свифт 4:
Цель-C:
источник
Вот моя быстрая реализация swift 4:
использовать как:
надеюсь, это поможет кому-то!
источник
В Swift 3 (возможно, 2) вы можете переопределить didSet для заполнителя в
UITextField
подклассе, чтобы применить к нему атрибут следующим образом:источник
Для Свифта
Создать расширение UITextField
Если вы установлены из раскадровки.
источник
Для Swift 3 и 3.1 это прекрасно работает:
источник
Для Swift 4.0, X-code 9.1 версии или iOS 11 вы можете использовать следующий синтаксис, чтобы иметь другой цвет заполнителя
источник
Я удивлен, увидев, сколько здесь плохих решений.
Вот версия, которая всегда будет работать.
Swift 4.2
СОВЕТ : Если вы измените текст заполнителя после установки цвета, цвет будет сброшен.
источник
источник
Обновление ответа Crubio для Swift 4
Выберите UITextField и откройте инспектор удостоверений справа:
Нажмите кнопку «плюс» и добавьте новый атрибут времени выполнения: placeholderLabel.textColor (вместо _placeholderLabel.textColor)
Используйте Цвет как тип и выберите цвет.
Если вы запустите свой проект, вы увидите изменения.
источник
Для Swift 4.2 и выше вы можете сделать это, как показано ниже:
источник
В моем случае я сделал следующее:
источник
Здесь я пишу все UIDesignable из UITextField. С помощью этого кода вы можете напрямую получить к нему доступ из UI-файла инспектора в раскадровке.
источник
Для Свифта
Вы можете использовать это;
источник
Это больше о персонализации вашего textField, но в любом случае я поделюсь этим кодом, полученным с другой страницы, и сделаю его немного лучше:
И вы можете использовать это так:
Зная, что у вас есть
UITextField
связь сViewController
.Источник: http://codepany.com/blog/swift-3-custom-uitextfield-with-single-line-input/
источник
Для цели C :
Для Свифта :
источник
Objective C-код для изменения цвета текста заполнителя.
Сначала импортируйте этот класс objc / runtime -
затем замените свое имя текстового поля -
источник
для iOS13
источник
Используйте как это в Swift,
В цели C
источник
источник
Используйте это для добавления атрибутивного заполнителя:
источник
Для Swift 4
источник
источник