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?


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.)


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";

17

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


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 .


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.


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"]]];

-3

fais juste ça

[textField setString:@"random"];

2
faux. C'est ainsi que vous configurez un fichier UITextField. La question concerne Cocoa NSTextField qui est un animal différent.
Canard du
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.