2011-05-18 16 views
14

que tienen la misma pregunta que en this page: (Ex. Subvista obj UIView)¿Cómo se usan objetos personalizados en Xcode 4?

En Interface Builder 3, podemos arrastrar objeto personalizado al escenario. Pero en XCode 4, después de crear un xib, tengo problema para volver a utilizarlo excepto por código.
Y en la "Biblioteca de objetos" -> "Objetos personalizados", está vacío.

Custom Objects in Xcode 4

Pero la respuesta dada allí no funciona para mí. Arrastro el archivo xib a la lista Objetos personalizados pero no agrega nada a la lista.

+0

Me gustaría editar su pregunta para permitir que abarque el desarrollo de OS X, no solo el desarrollo de iPhone (como señala @Michael), pero sentiría que estaba cambiando la esencia de la pregunta, así que lo haré dejarte decidir si deseas cambiar la pregunta. –

+1

Creo que en lugar de chupar horas con Interface Builder, simplemente debes crear tu vista desde el código. –

Respuesta

-6

Puede especificar la clase personalizada en el constructor Interfaz En el menú desplegable de clase puede elegir la clase personalizada para el elemento ui en el constructor Interfaz. La clase debe agregarse al proyecto para que aparezca en el menú desplegable.

enter image description here

+0

No creo que este enfoque funcione si la clase personalizada tiene un xib como parte de él, solo funciona cuando la clase personalizada solo se basa en un archivo .h y .m – 2cupsOfTech

+3

Definitivamente una diferencia entre los objetos de Custom Interface Builder y Custom Clase. – typeoneerror

0

Creo que hay una forma alternativa de hacer esto.

  1. Cree un archivo .nib. haga lo que quiera hacer en este .nib, como una UIView con algunos controles UI.
  2. Copie este UIView personalizado.
  3. Volver al guión gráfico en el que desea agregar esta UIView personalizada.
  4. Seleccione el UIViewController de destino y péguelo, listo.
12

Dado que marcó esta pregunta como "iPhone", asumo que está haciendo un desarrollo de iOS. No puede usar la función "Objetos personalizados" de Xcode para el desarrollo de iOS: está diseñado para su uso en aplicaciones desarrolladas para Mac.

Lo más cerca que puede llegar a imitar esta característica para el desarrollo de iPhone es crear su propio componente UIView personalizado que luego puede arrastrar entre archivos xib.

También puede crear una subclase UIView personalizada que tenga un archivo .h/.m/.xib. Si desea crear el objeto de programación, puede simplemente hacer esto:

NSArray *items = [[NSBundle mainBundle] loadNibNamed:@"MyClass" owner:owner options:nil]; 
id myView = [items objectAtIndex:0]; 

Con respecto al desarrollo de Mac, el panel de objetos personalizados no se utiliza realmente más. Me imagino que esta característica quedará fuera de futuras versiones de Xcode o que Apple todavía está trabajando para mejorar la compatibilidad con los complementos de IB. Las versiones anteriores de Xcode y Interface Builder (cuando IB era su propia aplicación) tenían soporte para complementos de construcción de interfaz y la creación de elementos de interfaz de usuario personalizados. BWToolkit es un ejemplo de uno de esos complementos. De la documentación:

Xcode 4 proporciona compatibilidad limitada para los plug-ins de Interface Builder 3. Específicamente, puede compilar un proyecto con las dependencias del complemento Interface Builder, pero no puede editar los archivos nib. Cuando intenta abrir un archivo nib con dependencias de plug-in, Xcode 4 muestra un cuadro de diálogo sugiriendo que actualice el archivo (Figura 4-3).Si está de acuerdo, Xcode convierte la clase de objetos personalizados creados con complementos en la clase de AppKit más cercana. Si la conversión no es posible, Xcode 4 proporciona un mensaje de error detallado. En ese caso, debe quitar el plug-in de la dependencia mediante Interface Builder 3 para poder editar el archivo plumín en Xcode 4.

+0

Esto es muy útil, y responde la pregunta teniendo en cuenta que la pregunta está de hecho etiquetada como iPhone, pero realmente agradecería que pudiera agregar información adicional sobre cómo esta característica de Objetos personalizados podría utilizarse en el desarrollo de OS X. –

+0

Agregué una nota sobre el desarrollo de Mac. –