¿Desea lograr la selección del keyboard a través de @IBInspectable?

Quería crear una selección de keyboard de @IBInspectabale

selección de teclado

Cómo lograr esto

Estoy creando una vista, en la que inserto ImageView y TextField. Ahora estoy creando esta class de vista personalizada como @IBDesignable y he creado los elementos @IBInspectable.

Creo con éxito los elementos de image lateral y marcador de position, pero ahora estoy tratando de crear el tipo de keyboard pero afrontando problemas.

código cortado: `import UIKit

@IB Clase de layout CustomTextField: UIView, UITextFieldDelegate {

//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 () } requinetworking 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 } }' 

Todo lo anterior funciona bien, pero el siguiente no funciona para mí:

 @IBInspectable var keyboard: UIKeyboardType? { get{ return UIKeyboardType(rawValue: textField.keyboardType.rawValue) } set(keyboard){ textField.keyboardType = keyboard! } } 

}

Lo intenté creando una enumeración pero no da ningún resultado para mí.

No es posible usar types de enumeración para vars @IBInspectable . Tienes que configurar tu var como una String o Int .

De los documentos de Apple:

Puede adjuntar el atributo IBInspectable a cualquier propiedad en una statement de class, extensión de class o categoría para cualquier tipo que sea compatible con los attributes de time de ejecución definidos por el Generador de interfaces: boolean, integer o número de coma flotante, cadena, cadena localizada, rectángulo, punto, tamaño , color, range y nada.

En primer lugar, gracias a todos. Mi problema se resuelve sin hacer ningún esfuerzo extra para crear enum y todo. Utilicé la enumeración pnetworkingefinida UIKeyboardType de Apple. Simplemente escriba el siguiente código:

 @IBInspectable var keyboard:Int{ get{ return self.textField.keyboardType.rawValue } set(keyboardIndex){ self.textField.keyboardType = UIKeyboardType.init(rawValue: keyboardIndex)! } } 

Y mostrará el keyboard en el generador de interfaz, y puede configurar 0,1,2 … valor para su tipo de keyboard. donde el 0,1,2 representa lo siguiente:

 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 @ #)