NSTEXTFIELD / NSSearchfield Valor predeterminado que se elimina cuando el enfoque está en el campo
-
28-10-2019 - |
Pregunta
Me gustaría tener un valor predeterminado para un NSTextField
(o NSSearchField
) y se elimine este valor predeterminado cuando el usuario hace clic en él y se retrasa cuando la vista de texto pierde el enfoque y el campo de texto está vacío. Como esto:
Parece que debería extender NSSearchField
Pero me preguntaba si había una solución más fácil.
Solución
Esta funcionalidad está de hecho incorporada; No hay necesidad de subclase o extender de otra manera NSSearchField
.
Ese es el campo cadena de marcador de posición. Puede configurarlo en IB o mediante una llamada a setPlaceholderString:
. Observe que este es un método de NSTextFieldCell
. Un NSTextField
es la "cara pública" de su celda y tiene métodos de cobertura para casi toda la funcionalidad de la célula. En este caso, sin embargo, debe enviar el mensaje directamente a la celda:
[[field cell] setPlaceholderString:@"Jumbo jets"];
Ya que NSSearchField
y NSSearchFieldCell
heredar de NSTextField
y NSTextFieldCell
, respectivamente, el proceso es el mismo para ellos.
Otros consejos
Establezca la cadena del soporte de lugar en el nstextfieldcell de nstextFields usando usando
[[textField cell] setPlaceholderString:@"String Matching"];