Tengo UITextView *_masterText
y después de la llamada, la setText
propiedad del método se restablece la fuente. Está sucediendo después de cambiar el SDK 7. _masterText es IBOutlet
global y las propiedades se configuran en el guión gráfico. ¿Soy solo yo o este es un error general del SDK?
@interface myViewController : UIViewController
{
IBOutlet UITextView *_masterText;
}
@implementation myViewController
-(void)viewWillAppear:(BOOL)animated
{
[_masterText setText:@"New text"];
}
ios
cocoa-touch
fonts
uitextview
Błażej
fuente
fuente
Me encontré con el mismo problema (en Xcode 6.1) y aunque la respuesta de John Cogan funcionó para mí, descubrí que extender la clase UITextView con una categoría era una mejor solución para mi proyecto en particular.
interfaz
implementación
fuente
extension UITextView { func setSafeText(text: String){ let originalSelectable = selectable selectable = true self.text = text selectable = originalSelectable } }
Si desea que su vista de texto sea de "solo lectura", puede marcar Editable y Seleccionable y desmarcar Interacción del usuario habilitada, con esto UITextView se comportó como yo quería
fuente
Tuve este problema y la respuesta anterior me ayudó, pero agregué un contenedor a mi código ViewController de la siguiente manera y simplemente pasé la instancia uiview y el texto para cambiar y la función de contenedor activa el valor Seleccionable, cambia el texto y luego lo apaga nuevamente. Útil cuando necesita que uitextview esté desactivado en todo momento de forma predeterminada.
fuente
EDITAR:
Configurar la fuente para UITextView en iOS 7 funciona para mí si primero establece el texto y luego establece la fuente:
En un archivo XIB, si agrega texto en su UITextView y cambia la fuente o el color, funcionará.
fuente
Aquí hay una solución rápida de subclase que uso a menudo para este problema.
fuente
Este problema volvió a aparecer en Xcode 8. Así es como lo solucioné:
Cambió la extensión a:
y marcó la opción Seleccionable en el Creador de interfaces.
No es muy elegante tener ese parámetro 'seleccionable', pero servirá.
fuente
En iOS 8.3, la solución alternativa de establecer "seleccionable" en SÍ antes del setText, y NO después, no me lo solucionó.
Descubrí que también necesitaba establecer "seleccionable" en SÍ en el guión gráfico, antes de que esto funcionara.
fuente
Esto funcionó para mí:
fuente
Para mí con texto atribuido, solo necesitaba configurar la fuente en el diccionario de atributos en lugar de configurarla en su propio campo.
fuente
Estoy teniendo este problema para. Una solución rápida y amigable de la respuesta de @Ken Steele. Extiendo UITextView y agrego una propiedad calculada.
Espero eso ayude.
fuente
Han pasado 3 años y el error aún existe en la última versión estable de Xcode (7.3). Claramente, Apple no lo solucionará en el corto plazo, dejando a los desarrolladores con dos opciones: dejar seleccionable y configurar UserInteractionEnabled en falso o Método swizzling.
Si tiene un botón en su textView, el primero no será suficiente.
Solución sin cambio de código requerido en swift:
C objetivo:
fuente
Utilizando la solución discutida en este número, esta extensión de UITextView proporciona una
setTextInCurrentStyle()
función. Basado en la solución de Alessandro Ranaldi, pero no requiere que el valor actual isSelectable se pase a la función.fuente