ios objective-c xcode uistoryboard

UITextView: configuración de la fuente que no funciona con iOS 6 en XCode 5



uitextfield (11)

Aún más extraño, esto solo ocurre en el iPhone, no en el iPad.

Si está configurando la fuente en código y no quiere una vista de texto editable, haga esto:

textView.editable = YES; textView.font = newFont; textView.editable = NO;

Estoy usando guiones gráficos para mi interfaz de usuario. Anteriormente estaba usando XCode 4.6 y lanzado en iOS 6. Desde entonces, he actualizado a iOS 7 usando XCode 5 y actualicé Storyboard para que funcione bien con XCode 5. Sin embargo, tengo un problema:

UITextView no desea mostrar los cambios de fuente dentro del código. Los cambios de color del texto funcionan bien. Cualquier otro cambio de propiedad está bien. Fuente, en absoluto. Estaba usando una fuente personalizada, así que revisé diferentes fuentes con diferentes tamaños (es decir, systemFontOfSize: pero eso no funcionó. La vista de texto solo muestra la fuente que está configurada en el Guión gráfico. ¿Qué podría estar perdiendo aquí? ¿Hay restricciones de diseño automático que se mezclen con este tipo de cosas? Tuve algunos problemas con restricciones durante la migración, pero como dije, las fuentes funcionan bien en iOS 7.

Creo que es algo en el Storyboard que me falta, como si creara un UIViewController y añadiera una vista de texto en el código, funciona bien.

Puse un código, pero no estoy seguro de que ayudaría en este caso.


Código para swift:

textOutlet.editable = true textOutlet.textColor = UIColor.whiteColor() textOutlet.font = UIFont(name: "ArialMT", size: 20) textOutlet.editable = false

O si cambias el texto primero mágicamente se resuelve

textOutlet.text = "omg lol wtf" textOutlet.textColor = UIColor.whiteColor() textOutlet.font = UIFont(name: "ArialMT", size: 20)


Como lo mencionaron otros:

textView.font = UIFont.systemFont(ofSize: 16) textView.isEditable = false

ps no necesita establecer primero isEditable como true ya que es true por defecto: un poco más corto, un poco más agradable


El problema se debe a que la propiedad editable es falsa en Storyboard. No tengo ni idea de por qué esto causó que la fuente permanezca sin cambios, y solo en iOS 6.


En mi caso (Desarrollando en Xcode 7.3, iOS 9),

La causa fue el orden de configuración de texto y font-family / size, no las opciones editables o seleccionables que muchas respuestas dicen allí (y no recibo ningún guión gráfico, xib en ese Textview).

Si ingreso como

[myTextView setFont:[UIFont fontWithName:@"HelveticaNeue-Italic" size:20]]; myTextView.attributedText = mAttStr;

entonces la familia y el tamaño de la fuente no se cambian, pero si lo hago al revés esos dos pasos, funciona. El texto de configuración debe ser anterior a la configuración de la familia / tamaño de la fuente.


En mi caso, es asunto de la propiedad ''seleccionable'' de UITextView.

Así que revisé la propiedad ''seleccionable'' de UITextView en Storyboard Editor para configurarlo SÍ

y más adelante en viewWillAppear establezca esta propiedad en NO.

textview.text = @"some text"; textview.selectable = NO;


Encontré que el tamaño de la fuente estaba siendo ignorado. Esto se resolvió marcando la casilla de verificación llamada: Seleccionable (habiendo seleccionado UITextView dentro del guión gráfico)


Este problema solo ocurre al configurar la propiedad Selectable en FALSE en el Interface Builder.

En caso de que se requiera que las propiedades editables y seleccionables estén configuradas en FALSO, hágalo desde el CÓDIGO y no desde el Creador de interfaz.

En resumen, haga propiedades editables y seleccionables = en el Creador de interfaces y luego agregue el siguiente código en caso de que necesite que las propiedades sean FALSAS:

_textView.editable = NO; _textView.selectable = NO;

Espero que esto ayude,


Gracias por todas las respuestas chicos. El problema aún está presente en iOS9. Lo que descubrí es que cuando configura " Interacción de usuario habilitada = falso " en el Creador de interfaz puede dejar Editable y Seleccionable = verdadero y el usuario no podrá editar una vista de texto.

Entonces, mi solución es:

  1. Establecer interacción de usuario habilitada = Falso en IB
  2. Establecer Editable = Verdadero en IB
  3. Establecer seleccionable = Verdadero en IB
  4. Configure su vista de texto de la manera que desee.

Para mí, es trabajo si configuras el texto de tu UITextView y luego de configurar la fuente (lo mismo para el color):

_myTextView.text = @"text"; [_myTextView setFont:[UIFont fontWithName:@"Helvetica Neue" size:18.0f]]; _myTextView.textColor = [UIColor whiteColor];


Swift 3 categoría que funcionó para mí:

extension UITextView { func setFontAndUpdate(_ font: UIFont?) { self.font = font // Font doesn''t update without text change let text = self.text self.text = nil self.text = text } }