Pourquoi UITextview n'a pas de propriété placeholder comme UITextField [dupliquer]

cette question a déjà une réponse ici:

Salut je travaille avec des applications iPhone, je sais que L'UITextfield a la propriété placeholder. Mais UITextview n'a pas de propriété placeholder. Je sais comment personnaliser placeholder pour UITextview. Mais s'il vous plaît laissez-moi savoir la différence.

et UITextfield hérite D'UIControl qui, à son tour, hérite d'UIView...NSObject. et UITextview hérite de UIScrollView, UIView, UIresponder...NSOBject. Mais où est la différence par rapport à la propriété de la place titulaire.

comment textfield contient la propriété placeholder, pourquoi textview ne contient pas de placeholder?

Veuillez donner des idées, des suggestions, et/ou donner une meilleure explication.

20
demandé sur icodebuster 2013-04-08 18:14:53

2 réponses

pourquoi UITextField a une valeur de réserve et UITextView n'a rien à voir avec leur héritage, ou même la programmation. Il s'agit de la façon dont Apple a perçu leur utilisation et préfère leur utilisation.

UITextField est un élément de ligne. Il peut être utilisé pour entrer des noms d'Utilisateur, des mots de passe, des bits d'adresse, ou à peu près n'importe quoi. Vous avez souvent plusieurs d'entre eux agglutinées, et il peut être difficile de déterminer quel champ doit avoir quelles données sans texte placeholder. Le porteur de place nous fait connaître le but du champ.

Text field example

UITextView est un bloc de texte. Généralement plusieurs lignes, qui ont souvent un en-tête associé à eux. Par conséquent, le texte de remplacement n'est souvent pas utile. La vue de texte est aussi plus susceptible d'être peuplée de texte statique qui, encore une fois, rendrait le texte placeholder pas vraiment utile.

est-ce que je pense Qu'Apple devrait ajouter une propriété de remplacement pour UITextView de toute façon? Oui. C'est ennuyeux d'avoir à faire mes propres sur l'occasion quand j'en ai besoin. Apple utilise également le texte des espaces réservés dans certains endroits où il utilise un UITextView . L'exemple suivant est d'ajouter une entrée d'agenda.

Text view example with placeholder

26
répondu DBD 2014-12-11 22:19:10

Je ne sais pas pourquoi Apple n'a pas inclus un attribut placeHolder sur UITextView. Mais j'ai pu en ajouter un en utilisant UILabel subview qui contient le texte du placeholder.

puis afficher ou cacher les callbacks des délégués comme ci-dessous

- (void)textViewDidBeginEditing:(UITextView *)textView
{
    self.defaultLabel.hidden = YES;
}

- (void)textViewDidChange:(UITextView *)txtView
{
    self.defaultLabel.hidden = ([txtView.text length] > 0);
}

- (void)textViewDidEndEditing:(UITextView *)txtView
{
    self.defaultLabel.hidden = ([txtView.text length] > 0);
}
51
répondu sixthcent 2013-04-08 14:27:17