使用 Objective-C
,我可以通过以下代码覆盖 setText
函数。 text
是 UITextField
的属性,我将其子类化以用于某些自定义 UI 设计。
- (void)setText:(NSString *)text
{
[super setText:text];
....
}
我的问题是,Swift 如何做这样的事情?
我用Swift编程时没有setText
这个函数。如何使用 Swift 覆盖属性的 setter
和 getter
方法?
最佳答案
在这种情况下,您可以使用变量观察器。
var variableName: someType = expression {
willSet(valueName) {
// code called before the value is changed
}
didSet(valueName) {
// code called after the value is changed
}
}
一个实际的例子。
“class StepCounter {
var totalSteps: Int = 0 {
willSet(newTotalSteps) {
print("About to set totalSteps to \(newTotalSteps)")
}
didSet {
if totalSteps > oldValue {
print("Added \(totalSteps - oldValue) steps")
}
}
}
}”
摘自:Apple Inc.“The Swift Programming Language (Swift 2.1 Prerelease)”。电子书。 https://itun.es/us/k5SW7.l
关于ios - Swift 中的 UITextField `setText`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35406558/