Ios 要通过@IBInspectable实现键盘选择吗
我想从@IBInspectable创建一个键盘选择 如何做到这一点 我正在创建一个视图,在其中插入一个ImageView和一个TextField, 现在,我将这个自定义视图类创建为@IBDesignable,并创建了@IBInspectable元素 我成功地创建了侧图像和占位符元素,但现在我正在尝试创建键盘类型,但面临一些问题 代码被截断:`导入UIKit @可设计的 类CustomTextField:UIView,UITextFieldDelegate{Ios 要通过@IBInspectable实现键盘选择吗,ios,swift,keyboard,ibdesignable,ibinspectable,Ios,Swift,Keyboard,Ibdesignable,Ibinspectable,我想从@IBInspectable创建一个键盘选择 如何做到这一点 我正在创建一个视图,在其中插入一个ImageView和一个TextField, 现在,我将这个自定义视图类创建为@IBDesignable,并创建了@IBInspectable元素 我成功地创建了侧图像和占位符元素,但现在我正在尝试创建键盘类型,但面临一些问题 代码被截断:`导入UIKit @可设计的 类CustomTextField:UIView,UITextFieldDelegate{ //custom view from
//custom view from the XIB file
var view: UIView!
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var imageView: UIImageView!
override init(frame: CGRect) {
super.init(frame: frame)
loadViewFromNib ()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
loadViewFromNib ()
}
func loadViewFromNib() {
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: "CustomTextField", bundle: bundle)
let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView
view.frame = bounds
view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.addSubview(view);
}
@IBInspectable var sideImage: UIImage? {
get {
return imageView.image
}
set(sideImage) {
imageView.image = sideImage
}
}
@IBInspectable var placeHolderText: String? {
get {
return textField.placeholder
}
set(placeHolderText) {
textField.placeholder = placeHolderText
}
}'
所有这些工作都很好,
但以下内容不适用于我:
@IBInspectable var keyboard: UIKeyboardType? {
get{
return UIKeyboardType(rawValue: textField.keyboardType.rawValue)
}
set(keyboard){
textField.keyboardType = keyboard!
}
}
}
我通过创建枚举尝试了它,但它没有为我提供任何结果。无法为
@IBInspectable
变量使用枚举类型。您必须将var设置为字符串
或Int
来自苹果的文档:
可以将IBInspectable属性附加到类中的任何属性
声明、类扩展或任何类型的类别
接口生成器定义的运行时属性支持:
布尔、整数或浮点数、字符串、本地化字符串、,
矩形、点、大小、颜色、范围和零
首先感谢大家。 我的问题在不做任何额外的创建enum和all的工作的情况下得到了解决。 我使用了苹果预定义的UIKeyboardType枚举。 只需编写以下代码:
@IBInspectable var keyboard:Int{
get{
return self.textField.keyboardType.rawValue
}
set(keyboardIndex){
self.textField.keyboardType = UIKeyboardType.init(rawValue: keyboardIndex)!
}
}
它将在Interface builder中显示键盘,您可以设置0,1,2。。。键盘类型的值。
其中0,1,2表示如下:
0: default // Default type for the current input method.
1: asciiCapable // Displays a keyboard which can enter ASCII characters
2: numbersAndPunctuation // Numbers and assorted punctuation.
3: URL // A type optimized for URL entry (shows . / .com prominently).
4: numberPad // A number pad with locale-appropriate digits (0-9, ۰-۹, ०-९, etc.). Suitable for PIN entry.
5: phonePad // A phone pad (1-9, *, 0, #, with letters under the numbers).
6: namePhonePad // A type optimized for entering a person's name or phone number.
7: emailAddress // A type optimized for multiple email address entry (shows space @ . prominently).
8: decimalPad // A number pad with a decimal point.
9: twitter // A type optimized for twitter text entry (easy access to @ #)
可能重复的