次のカスタムテキストフィールドクラスを使用して、テキストフィールドの外観を変更しています。次に、ユーザーがテキストフィールドの編集を開始して編集を終了するときに、テキストフィールドの背景色、テキストの色、プレースホルダーの色を変更する必要があります。このクラスを使用してそれを行う方法。
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
}
}
documentation に従って、必要なUIControlイベントのターゲットとしてselfを追加します
そこではEditingDidBeginなどのコントロールイベントがあります。
このようなもの:
self.addTarget(self, action: "myFunc", forControlEvents: UIControlEvents.EditingDidBegin);
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
}
ストーリーボードまたはプログラムでテキストフィールドのデリゲートを設定することを忘れないでください。
編集:
コードを短縮し、Swift 3