Fuentes que no se muestran en Interface Builder

Por alguna razón, muchas de las fonts no se mostrarán en Interface Builder cuando esté diseñando mi aplicación iPad. Lamentablemente, mi iPad aún no se entrega, así que no puedo decir si esto va a ser un problema a largo ploop, pero sin duda se mantiene en el simulador.

Las fonts en cuestión aparecen en varios sitios web como compatibles con el iPad, pero SDK 4.0.1 todavía parece confundirse.

Por ejemplo, la fuente de text de Hoefler asignada a una label dibujada directamente en una vista de iPad fresca utiliza la fuente pnetworkingeterminada. Si presiono para editar el text, se muestra en la fuente correcta. Lo he probado en un par de mac ahora

Este es un problema ya que tengo que enviar a través de la aplicación imitaciones a mi cliente para firmar los layouts perfectos de píxeles para su equipo de back-end 🙁

¡¿Algunas ideas?!

Para otros que puedan estar interesados: hay un error / problema conocido con IB en XCode 3.x con fonts no estándar y el Generador de interfaces. Las fonts personalizadas generalmente deben configurarse de manera programática (a través de [UIFont fontWithName …].

Para maquetas debería usar una herramienta como PhotoShop, etc. en lugar de Interface Builder.

usando fonts personalizadas en Interface Builder, una biblioteca reutilizable está disponible.

Utiliza un truco simple para hacer esto. Establezca la fuente (diga calibri) en todos los elementos de la interfaz de usuario que nunca utilizará en su proyecto y FontReplacer hará la asignación entre la fuente personalizada y la calibración. Por lo tanto, no hay necesidad de crear IBOutlets o cualquier otro gráfico.

Aquí hay un enlace a github desde donde puede download FontReplacer para usar en su proyecto. https://github.com/0xced/FontReplacer

Resolví esto escribiendo una categoría personalizada en UILabel. Esa categoría tiene una propiedad 'myFontName' que puse en la label usando objc_setAssociatedObject y obtengo del object usando objc_getAssociatedObject.

Luego escribí otro método en la categoría llamada 'updateWithMyFont' que establece la fuente en la label a través de la propiedad de text atribuida a la label (toma el text atribuido y copy los attributes, establece la fuente, crea una nueva cadena atribuida, establece la propiedad attributedText).