2011-10-08 11 views
5

EDIT: Dado que aún no he instalado XCode 4, me gustaría saber si MD 2.8 es totalmente compatible con XCode 3.2.6 o no. En particular, ¿puedo conectar salidas y acciones con el nuevo procedimiento descrito en MT documentation?Monodevelop 2.8, XCode 3.2.6, Interface Builder: Outlets and Actions

Acabo de instalar MonoDevelop (MD) 2.8. Parece que no funcionaba lo que esperaba.

En MD 2.6 cuando se crea un nuevo UIViewController, que el controlador se presenta como la siguiente:

  • Controller.xib < - dentro del mismo árbol
    • Controller.xib.cs
    • Controller.xib.designer.cs

Además, si abro un archivo xib, Controller.xib, solo se abre Interface Builder (IB). Si agrego tomas a xib, las salidas están visibles en Controller.xib.designer.cs.

En MD 2.8 cuando se crea un nuevo UIViewController, que el controlador se presenta como la siguiente:

  • Controller.xib < - no más dentro del mismo árbol
  • Controller.cs
    • Controller.designer.cs

Tengo dos archivos en lugar de uno.

Además, si abro un archivo xib, se abren Controller.xib, IB y Xcode. Si agrego tomas al xib, las tomas no son visibles en el diseñador.

¿Alguna sugerencia?

+2

yo no soy muy versado en MonoDevelop etc. todavía, pero ¿se fijaron la entrada de blog sobre MonoDevelop y MonoTouch ahora usa Xcode 4? –

Respuesta

6

MonoDevelop 2.8 introdujo un nuevo modelo de diseñador xib con el fin de apoyar Xcode 4.

La Interfaz del generador integrado en Xcode 4 ya no es compatible con la definición de las clases, los puntos de venta y acciones en los archivos xib. Esta medida ya no es posible que MonoDevelop use el modelo donde generó los archivos * .xib.designer.cs de los archivos xib. En cambio, Interface Builder lee las salidas y acciones del código fuente de Objective-C. La solución de MonoDevelop para esto es sincronizar las clases de C# con los apéndices de Objective-C.

Al abrir un archivo xib desde MonoDevelop 2.8, MonoDevelop crea un proyecto Xcode temporal con stubs Objective-C que duplican todas las clases C# expuestas a Objective-C, es decir, las clases que heredan de NSObject y están explícitamente registradas con un atributo [Register("SomeName")]. A continuación, abre el archivo xib en el contexto de ese proyecto, de modo que Interface Builder verá todos los tipos disponibles y las salidas y acciones en ellos. Si las tomas de corriente y las acciones se agregan en Xcode 4 con su sistema de control y arrastre, esas se importan automáticamente a los archivos * .designer.cs en MonoDevelop.

Esto significa que los archivos del diseñador ya no se generan a partir de algún otro archivo, sino que son la ubicación real donde se almacena la información. Ahora los archivos del diseñador están asociados con una clase en lugar de un xib.

Este nuevo modelo tiene varios aspectos positivos en la parte superior del soporte de Xcode 4:

  • Ahora es posible para múltiples archivos xib se refieren a la misma clase.
  • El proyecto contiene todos los recursos de contenido y otros archivos xib, por lo que puede ser fácilmente referenciados desde el Interface Builder
  • Interface Builder será 'ver' puntos de venta escritos en piezas de clase C# usuario y las clases base, no sólo las partes de la clase diseñador .

Además, ahora es mucho más fácil escribir tomas manualmente. Basta con aplicar el atributo Outlet a una propiedad, por ejemplo

[Outlet ("someView")] 
UIView SomeView {get; set; } 

Desafortunadamente el nuevo modelo significa que MonoDevelop ya no se integra con la creación de puntos de venta y acciones en el Interface Builder 3.2.x. Mi recomendación es que actualices a Xcode 4. La carga y edición de proyectos pre-MD 2.8 debería funcionar bien.

Por favor, vea http://docs.xamarin.com/ios/tutorials/transitioning_from_xcode_3_to_xcode_4

+0

Muchas gracias por su respuesta. Muy útil. –

+0

¿Eso significa que los XIB generados con MD 2.6 y Xcode 3 en un proyecto que se actualiza a MD 2.8 y Xcode 4, permanecen en el formato anterior y funcionan hasta que tenga que cambiar algo? – Krumelur

+0

No es necesaria ninguna conversión. –

Cuestiones relacionadas