/ / convertir NSTextField en Label - objective-c, macos, cacao, nstextfield, nstextfieldcell

convertir NSTextField en Label - objectif-c, macos, cacao, nstextfield, nstextfieldcell

J'utilise les fonctions suivantes pour convertir un champ de texte en étiquette et vice versa

-(void)convertLabelToTextField : (NSTextField *)Inlabel
{
[Inlabel setBezeled:YES];
[Inlabel setDrawsBackground:YES];
[Inlabel setEditable:YES];
[Inlabel setSelectable:YES];
}

-(void)convertTextFieldToLable : (NSTextField *)textField
{

[textField setDrawsBackground:NO];
[textField setEditable:NO];
[textField setSelectable:NO];
[textField setBezeled:NO];

}

Mais mon interface utilisateur n'est pas cohérente.

  • Étiquette initiale

entrer la description de l'image ici

  • Étiquette au champ de texte

entrer la description de l'image ici

  • Champ de texte à étiqueter (après avoir sélectionné le texte)

entrer la description de l'image ici

  • Étiquette au champ de texte

entrer la description de l'image ici

entrer la description de l'image ici

Est-ce que quelqu'un peut m'aider s'il vous plait.

Réponses:

3 pour la réponse № 1

Le coupable était la hauteur par défaut de l'étiquette.

label Hauteur par défaut

entrer la description de l'image ici

NSTextField Hauteur par défaut

hauteur du champ de texte

ci-dessous est le code pour l'étiquette avec hauteur 22

NSTextField *textField;

textField = [[NSTextField alloc] initWithFrame:NSMakeRect(10, 10, 100, 22)];
[textField setStringValue:@"My Label"];
[textField setBezeled:NO];
[textField setDrawsBackground:NO];
[textField setEditable:NO];
[textField setSelectable:NO];

0 pour la réponse № 2

Essayez de définir le masque de redimensionnement

[textField setAutoresizingMask: NSViewMinXMargin | NSViewWidthSizable | NSViewMaxXMargin | NSViewMinYMargin | NSViewHeightSizable | NSViewMaxYMargin];

Voir cette réponse