Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift中采用雨衣_Ios_Objective C_Swift_Uitextinputtraits - Fatal编程技术网

Ios 在Swift中采用雨衣

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

我试图在Swift 3中为自定义
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()
                }
            }
        }
    }