Изменение цвета фона текстового поля и цвета текста IOS Swift
Я использую следующий класс текстового поля для изменения внешнего вида текстового поля. Теперь мне нужно изменить цвет фона текстового поля, цвет текста и цвет держателя места, когда пользователь начнет редактирование и закончит редактирование текстового поля. Как это сделать, используя этот класс.
import Foundation
import UIKit
class CustomTextField: UITextField{
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
//Border
self.layer.cornerRadius = 15.0;
self.layer.borderWidth = 1.5
self.layer.borderColor = UIColor.whiteColor().CGColor
//Background
self.backgroundColor = UIColor(white: 1, alpha: 0.0)
//Text
self.textColor = UIColor.whiteColor()
self.textAlignment = NSTextAlignment.Center
}
}
Ответы
Ответ 1
Добавьте себя как цель для событий UIControl, которые вам нужны в соответствии с documentation
Там у вас есть контрольные события для EditingDidBegin и т.д.
Что-то вроде этого:
self.addTarget(self, action: "myFunc", forControlEvents: UIControlEvents.EditingDidBegin);
Ответ 2
В вашем классе CustomTextField
вы можете добавить наблюдателя свойств:
var change: Bool = false {
didSet {
textColor = change ? .yellow : .black
backgroundColor = change ? .blue : .white
}
}
и в вашем ViewController:
func textFieldDidBeginEditing(textField: UITextField) {
customTextField.change = true
}
func textFieldDidEndEditing(textField: UITextField) {
customTextField.change = false
}
Не забудьте установить делегат вашего текстового поля, в раскадровку или программно.
EDIT:
Сокращен код и обновлен для Swift 3
Ответ 3
Выберите текстовое поле → щелкните значок "Инспектор идентификации" → нажмите кнопку "Плюс" "Пользовательские атрибуты среды выполнения" → добавьте этот текст "_placeholderLabel.textColor" в поле "Ключевой путь" → выберите "Тип" "Цвет" и установите значение цвета. ![Please check the images in detail]()