Comment définissez-vous le texte dans un NSTextField?

134

J'essaye de placer le texte dans un NSTextField, mais les méthodes -setStringValue:et -setTitleWithMnemonic:ne fonctionnent pas. Des idées?

Alexsander Akers
la source
Votre NSTextField est-il référencé en tant qu'IBOutlet et correctement attaché (si vous utilisez Interface Builder, c'est-à-dire ...)
jlindenbaum

Réponses:

229

setStringValue:est la manière de le faire. Vous devez vous assurer que votre prise est correctement réglée. (Dans le débogueur, assurez-vous que votre variable textfield n'est pas nulle.)

Ken Aspeslagh
la source
22
La façon de faire cela dans Swift est juste stringValue, alors vous pouvez le définir sur la chaîne de votre choix.
Christopher Spencer
43

Faites quelque chose comme ça:

myLabel.stringValue = @"My Cool Text";
Jim
la source
17

Fonctionne simplement myLabel.stringValue = "MY TEXT"ici, en utilisant Swift et Xcode 6.

Alexandre
la source
C'est une bonne réponse pour l'environnement de développement le plus récent. Btw pourquoi cela ne fait pas partie de la documentation NSTextField? J'y suis allé en premier et j'ai pensé qu'il serait vraiment évident de trouver comment faire ça, mais ce n'était pas là ... EDIT: Je l'ai trouvé, ce n'est tout simplement pas à la place évidente de "Topics", car stringValue est en fait un propriété de la classe parent NSControl, et apparaît dans "Overview"
wllychng
8

Swift 4

self.yourTextField.stringValue = "Your_Value"

Remarque: la récupération de la valeur de self.yourTextField.stringValue à qui recevra un message d'avertissement, c'est- Message d'alerte à- dire pour éviter ce type d'avertissement, vous pouvez utiliser comme ceci (méthode suggérée)

DispatchQueue.main.async {
 your code ... 
} 

OU faites également référence à cela .

Maulik Rajani
la source
1

Si la valeur que vous essayez de définir se trouve être un entier plutôt qu'une chaîne, vous n'avez pas besoin de convertir la valeur entière en chaîne manuellement; vous pouvez simplement appeler:

myLabel.integerValue = i;

La integerValuepropriété est définie sur NSTextFieldla classe parente de NSControl. Consultez cette page de documentation liée pour une liste complète des méthodes prises en charge.

Jon Schneider
la source
0

Objectif c:

[label setStringValue: @"I am a label"];

le code original que j'utilise dans mon code pour afficher la version de l'application est:

    [lblVersion setStringValue:[NSString stringWithFormat:@"v%@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]]];
Alp Altunel
la source
-3

fais juste ça

[textField setString:@"random"];
Joe Manto
la source
2
faux. C'est ainsi que vous configurez un fichier UITextField. La question concerne Cocoa NSTextField qui est un animal différent.
Canard du