Ios 在Swift中采用雨衣
我试图在Swift 3中为自定义Ios 在Swift中采用雨衣,ios,objective-c,swift,uitextinputtraits,Ios,Objective C,Swift,Uitextinputtraits,我试图在Swift 3中为自定义UIButton子类采用uitraits 我添加了中指定的所有属性: 但是,当我尝试编译时,issecurettententry会导致以下错误: 目标C方法“SetIsSecureTextry:”由setter提供,用于 “IsSecurity Extentry”与需求的选择器不匹配 ('setSecureTextEntry:') 如果我使用建议的“修复”,属性声明将变成: var @objc(setSecureTextEntry:) isSecureTextEn
UIButton
子类采用uitraits
我添加了中指定的所有属性:
但是,当我尝试编译时,issecurettententry
会导致以下错误:
目标C方法“SetIsSecureTextry:”由setter提供,用于
“IsSecurity Extentry”与需求的选择器不匹配
('setSecureTextEntry:')
如果我使用建议的“修复”,属性声明将变成:
var @objc(setSecureTextEntry:) isSecureTextEntry: Bool = false
…但现在我有三个错误:
var
和@objc
之间插入分号)
以及:
实现这一特性的正确方法是什么 也许不完全是你的情况,但这种采用雨衣的方式对我来说很好 (次要提示:UIKeyInput扩展UIT)
var @objc(setSecureTextEntry:) isSecureTextEntry: Bool = false
public class ShortPasswordEntry : UIControl, UIKeyInput
{
public override init(frame: CGRect) {
super.init(frame: frame)
}
extension ShortPasswordEntry
{
public var keyboardType: UIKeyboardType {
get {
return .numberPad
}
set {
assertionFailure()
}
}
}
}