我正在尝试将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
...但现在我得到了三个错误:
预期模式
一行上的连续声明必须用';'分隔。
(要我在var @objc(setSecureTextEntry:) isSecureTextEntry: Bool = false
和var
之间插入分号,
和
实施这一属性的正确方法是什么?
答案 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()
}
}
}
}