Изменение цвета заполнителя UITextField для ВСЕХ текстовых полей в appDelegate - PullRequest
0 голосов
/ 28 февраля 2020

Я знаю, что вы можете изменить текст заполнителя с помощью следующего кода:

mailTextField.attributedPlaceholder = NSAttributedString(string: "Email", attributes: [NSAttributedString.Key.foregroundColor : UIColor.black])

К сожалению, у меня есть много текстовых полей, которые должны выглядеть одинаково. Поэтому очень неудобно копировать, вставлять этот код выше для каждого текстового поля.

Сегодня я узнал, что вы можете изменить с помощью appearance() в приложении. Укажите внешний вид элемента UIE, если вы хотите, чтобы он всегда был одинаковым. Следующий код прекрасно работает для меток:

UILabel.appearance().textColor = Colors.greyLabel

Но когда я пытаюсь сделать это для заполнителей текстовых полей, он не работает.

Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Вы можете создать пользовательский класс, который является подклассом UITextField как

import Foundation
import UIKit

class CustomTextField:UITextField{

    override init(frame: CGRect) {
        super.init(frame: frame)
        setProperties()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setProperties()
    }

    func setProperties(){

        backgroundColor = UIColor.white
        textAlignment = .left
        textColor = .black
        font = UIFont.systemFont(ofSize: 15)
        borderStyle = .roundedRect
        if let placeholder = self.placeholder {
            self.attributedPlaceholder = NSAttributedString(string:placeholder, attributes: [NSAttributedString.Key.foregroundColor: UIColor.green])
        }
    }
}

Если вы используете раскадровку, то вы можете назначить этот пользовательский класс UITextField

enter image description here

И программно

var mailTextField = CustomTextField()
0 голосов
/ 29 февраля 2020

Вы можете использовать 100 appearanceWhenContainedInInstancesOfClasses, но доступно с iOS 9.

Пример:

UILabel.appearanceWhenContainedInInstancesOfClasses([UITextField.self]).textColor = UIColor.redColor()’
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...