2009-11-09 15 views
6

Esto no debería ser tan confuso. Tengo una UIView personalizada con muchos controles en ella. UILabels, botones, etc. He creado este Nib usando Interface Builder. Quiero poder colocar esta vista personalizada en otra UIView usando el constructor de interfaz.UIView personalizado creado con Interface Builder accesible/posicionable a través de Interface Builder

¿Cómo vinculo mi clase personalizada de UIView a la punta? Se llama a initWithCoder, pero quiero que esta clase se cargue desde el plumín.

Gracias

+0

¿Ha encontrado una respuesta aceptable? Por favor, márcalo, gracias. – JoePasq

+0

@JoePasq ¿ves CUALQUIER respuesta válida aquí? –

+0

en realidad nunca funcionó esto lamentablemente – Nader

Respuesta

3

Para que esto funcione, debe crear un plug-in para Interface Builder que use la clase de su control personalizado. Tan pronto como cree e instale su complemento, podrá agregar, arrastrando y soltando, instancias de su vista a otra ventana o vista en Interface Builder. Para obtener información sobre cómo crear complementos de IB, consulte el Interface Builder Plug-In Programming Guide y el capítulo sobre cómo crear sus propios controles de paleta IB en el libro de Aaron Hillegass, Cocoa Programming for Mac OS X.

Here es el enlace al autor original de la respuesta aceptada al a similar question.

+3

Resulta que esto no es compatible a partir de XCode 4.0+ –

0

puede insertar un objeto UIViewController usando Interface Builder y, a continuación, establezca la propiedad "nombre de plumilla" la UIViewController 's. No sé si esto arruina tu modelo, pero creo que es la única forma de hacer lo que intentas hacer.

+0

Hola Kenny, gracias por la respuesta rápida. Solo intenté eso. Agregué un UIViewController a mi vista principal, configuré el nombre de la plumilla en la punta de la subvista personalizada y conecté la propiedad de la vista del uiviewcontroller a la vista personalizada en el constructor de la interfaz. La misma cosa. Simplemente no aparece. initWithCoder recibe una llamada en la vista personalizada, pero no aparece nada. – Nader

0

En IB abra la herramienta Inspector de identidad (Comando-4), luego seleccione su vista personalizada y en la ventana emergente de Clase elija el nombre de su clase personalizada en lugar de UIView genérico. Es posible que desee conectarlo a un ivar también. En su ViewController, declare una instancia de su clase personalizada con un IBOutlet frente a ella. A continuación, vuelva y abra el Inspector de conexiones y conecte su vista al ivar haciendo clic y arrastrando desde el punto de referencia de la vista personalizada al propietario del archivo (que debería ser una instancia de su ViewController) y eligiendo el nombre de ivar.

Cuando su NIB está cargado, debería crear un objeto de ese tipo y conectarlo a esa variable.

Cuestiones relacionadas