Swift中的UITextField`setText`

刘爱乔

使用Objective-C,我可以setText通过以下代码覆盖该功能。text是的属性UITextField为一些自定义的UI设计,和我子分类。

- (void)setText:(NSString *)text
{
   [super setText:text];
   ....
}

我的问题是,斯威夫特该怎么做

setText使用Swift编程时没有此类功能如何使用Swift覆盖属性settergetter方法?

米歇尔·阿兹维多(MichaëlAzevedo)

在的子类中UITextField,覆盖text属性:

override public var text:String?  {
    didSet {            
         NSLog("text = \(text)")
    }
}

但是请注意,在更改属性后将didSet调用观察器,因此由于已被替换,因此您无法决定恢复为先前的值。如果要在更改值之前执行操作,则可以使用观察器,该观察器在更改值之前被调用。willSet

override public var text:String?  {
    didSet {            
         NSLog("text = \(text)")
    }
    willSet {
        NSLog("will change from \(text) to \(newValue)")
    }
}

这个代码的小例子:

var testTextfield = MyTextFieldClass()
testTextfield.text = "test"
testTextfield.text = "test1"

输出是

will change from Optional("") to Optional("test")
text = Optional("test")
will change from Optional("test") to Optional("test1")
Optional("test1")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

听UITextField setText

如何在Swift中制作全角UITextField

Swift中UITextView和UITextField的单个扩展

Swift 4 UITextField Alert中的最大长度

Swift 4中键盘重叠的UITextField

在Swift的UITextfield中显示用户键入的密码

在Swift 4中使用UItextfield的UISearchbar

#selector(delete(_:)) 在 uitextfield swift 中崩溃

在iOS的Swift中对UITextField执行自动完成

使用Swift在UITableViewCell中获取UITextField的indexPath

使用UITextfield的setText时不会触发UIControlEventEditingChanged

如何在Swift中的UIAlertController中更改UITextField的高度?

Swift中UITextfield中的滚动Tableview数据重排

Swift UITextField:在自动布局中创建一个动态减少的 UITextField 框架

如何防止用户在UITextfield-swift中输入'#'和空白('')?

在Swift中获取和设置UITextField和UITextView的光标位置

如何仅在Swift中显示UITextField的底部边框

如何在Swift中根据用户类型调整UITextField的大小

如何在Swift中居中显示UITextField文本

如何在Swift中限制不同UITextField的文本长度?

在Swift中设置UITextField的最大字符长度

使用Swift选择UITextField中的所有文本

在Swift中为UITextField / UIView摇动动画

UITextField在Swift中设置最大字符长度

如何使UITextField像Swift中的UISearchBar一样工作?

iOS Swift委托在uiview中具有多个uitextfield

PHP代码为什么不响应SWIFT中的UITextField参数?

在Swift中显示UITextField的底部边框无法使用约束。

如何在Swift中清除UITextField安全文本输入?