AppDelegate 中的 UITextField 自定义不适用于 Swift

UITextField customization in AppDelegate not working for Swift

我想通过 AppDelegate 一次自定义所有文本字段,我已经测试了在各个 ViewController 上工作的自定义,但是当我通过 AppDelegate 添加自定义时,它不会出现。请指导我我错过了什么:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    UITextField.appearance().layer.borderWidth = 2
    UITextField.appearance().layer.borderColor = UIColor(red:0.094 , green:0.737 ,  blue:0.612 ,  alpha:1).CGColor
           return true
}

我找到了解决方案,感谢@nannav。 与其在 AppDelegate 中自定义 TextField,不如创建一个新的 class,例如:

class MyCustomTextField: UITextField {
required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    self.layer.borderWidth = 2
    self.layer.borderColor = UIColor(red:0.094 , green:0.737 ,  blue:0.612 ,  alpha:1).CGColor
}

}

稍后在故事板中,我们必须将 customClass 中的 MyCustomTextField 分配给我们想要自定义的文本字段

UITextField 没有用 UI_APPEARANCE_SELECTOR 标记,所以这就是它不像 UITextField.appearance()....

那样工作的原因

有关详细信息,请查看 What properties can I set via an UIAppearance proxy?