ios - Vista de entrada personalizada como teclado para el campo de texto en Swift usando OSX 10.9 y Xcode 6.1.1+
keyboard xcode6 (0)
Tengo problemas para conectar los botones después de cargar un teclado de vista de entrada personalizado. Mis pantallas principales son guiones gráficos y mi vista personalizada es xib.
La vista de entrada es una punta con el propietario del archivo apuntando a su clase rápida. Estoy cargando la vista de entrada con código en otro controlador de vista usando:
extension UIView {
class func loadFromNibNamed(nibNamed: String, bundle : NSBundle? = nil) -> UIView? {
return UINib(
nibName: nibNamed,
bundle: bundle
).instantiateWithOwner(nil, options: nil)[0] as? UIView
}
}
Dentro del controlador de vista principal, estoy creando la vista de entrada con:
var myInputView = UIView.loadFromNibNamed("keypadInputViewController", bundle: nil)
keypadInputViewController es el nombre base de xib y su archivo rápido y el nombre de clase en el archivo rápido.
Adjunto este teclado usando:
self.widthBox.inputView = self.myInputView
La vista del teclado se abre cuando se abre un teclado ios normal
El problema es que tan pronto como agregue los conectores para los botones del tecladoInputViewController xib a su veloz mensaje de bloqueo. El mensaje se refiere específicamente a las conexiones que he creado. "esta clase no es un valor clave que cumpla con la codificación de la clave"
El xib contiene una vista con una docena de botones.
He verificado una serie de elementos, entre ellos:
- El propietario del archivo está configurado en keypadInputViewController
- funcionó limpio en Xcode
- corrigió el reinicio en el simulador de iOS
- archivos derivados eliminados manualmente en la biblioteca
- referencia eliminada y re-agregado archivo xib y swift para proyectar
- eliminó todas las conexiones de xib a swift en ambos, el propietario del archivo y las secciones de vista
- cerrado y reabierto Xcode
- intenté la beta 4 para Xcode 6.2
- Abrí xcode y creé un proyecto de prueba ios, agregué una clase de toque de cocoa y utilicé la casilla de verificación create xib. El proyecto de prueba falla con el mismo error tan pronto como agregue conexiones de botones.
Después de buscar durante bastante tiempo, descubrí que si no configuré el propietario yo no permitiría que las conexiones de los botones funcionaran. Así que cambié la extensión a:
extension UIView {
class func loadFromNibNamed(nibNamed: String, bundle : NSBundle? = nil) -> UIView? {
return UINib(
nibName: nibNamed,
bundle: bundle
).instantiateWithOwner(self, options: nil)[0] as? UIView
}}
Todavía no puedo configurar la vista para el propietario del archivo. La aplicación se bloquea al compilarse si está conectada una toma de corriente, o al presionar un botón si una acción está conectada, con el error "selector no reconocido enviado a la clase"
No sé si soy yo o si es Xcode. ¿Cómo hago para que esta vista de teclado acepte conexiones para poder seguir adelante? Estoy pensando que quizás no agregué algo importante a las definiciones de clase o no estoy cargando este xib correctamente. Ideas?