我有一个UITextField的扩展名,希望在处于活动/非活动/无效状态时更改样式。为了避免代码重复,我想在定制中完成这一切。
当我在自定义文本字段之外(在视图中)设置它时效果很好,但是当我想这样设置时抛出异常。当字段变为活动(聚焦)时抛出异常,而不是当它出现时抛出异常。
class LoginTextField: UITextField {
@IBInspectable var strokeColor: UIColor = UIColor.captionColor()
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.addTarget(self, action: "setFocusOn:", forControlEvents: UIControlEvents.EditingDidBegin)
}
func setFocusOn(){
strokeColor = UIColor.captionUnderlineColor()
}
以下是例外情况:
由于未捕获异常“NSInvalidArgumentException”,BlockquoteTerminating应用程序,原因:'-[CustomTextField setFocusOn:]:发送到实例0x7ff048d0b270的未识别选择器
任何帮助/提示将不胜感激!
蒂亚,
弥尔顿
最佳答案
选择器没有参数,因此不需要冒号,因此请尝试:
self.addTarget(self, action: "setFocusOn", forControlEvents: UIControlEvents.EditingDidBegin)