嘿我正在尝试在Swift中继承UITextField,这样我就可以检测到何时按下了delete / backspace键。到目前为止,我有这个:
import UIKit
class DigitTextField: UITextField {
var delegate: digitFieldDelegate?
func deleteBackward() {
super.deleteBackward()
delegate?.backspacePressed()
}
}
protocol digitFieldDelegate {
func backspacePressed()
}
现在我已将IB中的UITextField类更改为DigitTextField,并在viewController中创建了连接。我收到错误使用未声明的类型DigitTextField 。我在这做错了什么?任何指针都会非常感激。感谢
答案 0 :(得分:0)
正如LE SANG在评论中指出的那样,你不能只写自己的delegate
属性来覆盖旧属性。它只是不起作用!
您需要做的是将您的财产的名称更改为其他名称,以便名称不会发生冲突,旧的文本字段委托仍然可以做它应该做的事情。
就像这样:
var myDelegate: digitFieldDelegate?
当然,你也应该改变deleteBackwards
方法中的单词!
此外,建议使用PascalCase命名协议:
protocol DigitFieldDelegate {
//...
}