我有一个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)

10-06 08:23