在Swift中采用UITextInputTraits

时间:2017-02-01 01:40:55

标签: ios objective-c swift uitextinputtraits

我正在尝试将Table用于Swift 3中的自定义UITextInputTraits子类。

我添加了"Symbols" section of the documentation中指定的所有属性:

UIButton

但是,当我尝试编译时,import UIKit class TextInputButton: UIButton { var autocapitalizationType: UITextAutocapitalizationType = .none var autocorrectionType: UITextAutocorrectionType = .no var spellCheckingType: UITextSpellCheckingType = .no var enablesReturnKeyAutomatically: Bool = false var keyboardAppearance: UIKeyboardAppearance = .default var keyboardType: UIKeyboardType = .default var returnKeyType: UIReturnKeyType = .default var isSecureTextEntry: Bool = false // (...rest of class implementation omitted...) 会导致以下错误:

  

Objective-C方法' setIsSecureTextEntry:'由setter提供   ' isSecureTextEntry'与要求的选择器不匹配   (' setSecureTextEntry:&#39)

如果我使用建议的' fix-it',则属性声明变为:

isSecureTextEntry

...但现在我得到了三个错误:

  1. 预期模式

  2. 一行上的连续声明必须用';'分隔。

  3. (要我在var @objc(setSecureTextEntry:) isSecureTextEntry: Bool = false var之间插入分号,

    1. 预期宣言
    2. 实施这一属性的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

也许不完全是你的情况,但是这种UITextInputTraits的采用对我来说很好用

(次要提示:UIKeyInput扩展UITextInputTraits)

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()
            }
        }
    }
}