Texte vertical central dans NSTextField
Dans une certaine hauteur NSTextField , la mise en page serait comme si ce texte est la taille est petite
le texte s'écoule vers le haut ,comment faire le centre de texte comme ceci:
Double Possible de stackoverflow.com/questions/1235219/..., jetez un coup d'oeil!
Merci, ça fonctionne, mais si le texte de NSTextField est sélectionné, il est de retour à alignée en haut de nouveau.
Un peu de chance avec ça? J'obtiens la même chose, où lorsque l'utilisateur saisit du texte, il est alignée en haut et puis quand ils cliquent sur le dire d'un autre champ, puis il revient à centré
Désolé de ne pas la bonne solution pour elle.
Merci, ça fonctionne, mais si le texte de NSTextField est sélectionné, il est de retour à alignée en haut de nouveau.
Un peu de chance avec ça? J'obtiens la même chose, où lorsque l'utilisateur saisit du texte, il est alignée en haut et puis quand ils cliquent sur le dire d'un autre champ, puis il revient à centré
Désolé de ne pas la bonne solution pour elle.
OriginalL'auteur Mil0R3 | 2012-08-02
Vous devez vous connecter pour publier un commentaire.
Je suis à la base à l'aide de Alex de la réponse, avec un amendement: il faut diminuer la hauteur de la titleRect si l'on augmente l'axe d'origine. Sinon notre titleRect prendra fin en dessous de la fin de son superview, éventuellement cacher tout contenu ci-dessous la NSTextField.
L' .h:
L' .m:
Aussi, VerticallyCenteredTextFieldCell est une sous-classe de NSTextFieldCell. Si vous sous-classe, changement de la classe de l'NSTextFieldCell dans Interface Builder, pas la NSTextField (je ne connaissais pas cette).
OriginalL'auteur Erik Wegener
OriginalL'auteur Sayanti Mondal
Juste sous-classe
NSTextFieldCell
(ou swizzle il) ... et de mettre en œuvre...NSTextFieldCell
, pasNSTextField
. J'ai mis une catégorie surNSTextFieldCell
et de mise en œuvre de ces méthodes, et cela a fonctionné assez bien.Swizzle?? Vous vous moquez de moi? C'est tout simplement contraire à l'éthique, à proposer quelque chose de similaire pour résoudre un problème comme celui-ci.
Ce code ne fonctionne pas bien si le champ contient plusieurs lignes. J'ai la mienne avec 3 et la dernière ligne est tout simplement pas à l'affiche. Je suis sur 10.10.
mais ce n'est pas un swizzle, droit?
Cette réponse n'est pas, mais il contient un lien vers une solution qui nécessite l'utilisation de la méthode swizzling.
OriginalL'auteur Alex Gray
L'ajout d'un peu d'Erik et Hejazi réponse, vous devez également mettre en œuvre
selectWithFrame
, voici la solution rapide 2.2:selectWithFrame
?Oups, oui, vous avez raison 🙂
OriginalL'auteur Shizam
Swift version de Erik de la maladie de Wegener réponse (également modifié pour fonctionner avec plusieurs lignes):
OriginalL'auteur Hejazi
Ma solution est basée à calculer la hauteur de la police à l'aide de NSLayoutManager.
De cette façon, permettre plus de performance que de calculer la hauteur à l'aide de méthodes de attribué chaîne.
OriginalL'auteur Saúl Moreno Abril