Pregunta

Estoy tratando de poner en práctica la respuesta a esta cuestión de forma . El problema es:. -[drawTextInRect] aparentemente no se conoce, y el establecimiento de la sombra en -[drawRect] no hace que el texto de la sombra UITextField

Otra cosa rara es que incluso si mis implementaciones de subclases de -[drawTextInRect] y -[drawRect] son completamente vacío (ni siquiera una llamada a super), el texto del campo de texto se dibuja.

¿Fue útil?

Solución

Esto es un error en la documentación de la API UITextField. La documentación indica que drawTextInRect: primordial se puede utilizar para personalizar el comportamiento. Este no es el caso.

De hecho, drawTextInRect: nunca será llamado en una UITextField (drawPlaceholderInRect: se llama ni por cierto).

http://discussions.apple.com/thread.jspa?threadID= 1727596 .

Sustitución del método de UILabel obras embargo.

Otros consejos

Creo que el método que busca es:

- (CGRect)textRectForBounds:(CGRect)bounds

o posiblemente

- (CGRect)editingRectForBounds:(CGRect)bounds

observo que - [drawTextInRect] se llama una vez cuando el UITextField pierde el foco. No es lo que quería.

UITextField no responde a un mensaje - drawTextInRect:. El código en la página hace referencia a las subclases no es un UILabel un UITextField, por lo que no funciona para usted.

Si usted no llama estupendo, el compilador podría ser la eliminación del método durante la optimización de su código. Efectivamente lo que significa que la ejecución de UILabel está recibiendo llamadas.


Actualización: Si está utilizando una punta para crear el campo de texto, asegúrese de que ha configurado la clase del campo de texto en la punta de su subclase personalizada, de lo contrario el código personalizado no se llamará.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top