Wie legen Sie den Text in einem NSTextField fest?

134

Ich versuche, den Text in einem NSTextField festzulegen, aber die Methoden -setStringValue:und -setTitleWithMnemonic:funktionieren nicht. Irgendwelche Ideen?

Alexsander Akers
quelle
Wird Ihr NSTextField als IBOutlet referenziert und ordnungsgemäß angehängt (wenn Sie Interface Builder verwenden, das ist ...)
jlindenbaum

Antworten:

229

setStringValue:ist der Weg, es zu tun. Sie sollten sicherstellen, dass Ihre Steckdose richtig eingestellt ist. (Stellen Sie im Debugger sicher, dass Ihre Textfeldvariable nicht null ist.)

Ken Aspeslagh
quelle
22
Die Möglichkeit, dies in Swift zu tun, ist einfach stringValue, dann können Sie es auf eine beliebige Zeichenfolge einstellen.
Christopher Spencer
43

Mach einfach so etwas:

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

Funktioniert hier einfach myLabel.stringValue = "MY TEXT"mit Swift und Xcode 6.

Alexander
quelle
Dies ist eine gute Antwort für die neueste Entwicklungsumgebung. Übrigens, warum ist dies nicht Teil der NSTextField-Dokumentation? Ich war zuerst dort und dachte, es wäre wirklich offensichtlich, wie man das macht, aber es war nicht da ... EDIT: Ich habe es gefunden, es ist einfach nicht an der offensichtlichen Stelle von "Topics", weil stringValue tatsächlich ein ist Eigentum der Elternklasse NSControl und erscheint in "Übersicht"
wllychng
8

Swift 4

self.yourTextField.stringValue = "Your_Value"

Hinweis: Wenn Sie einen Wert aus self.yourTextField.stringValue abrufen, wird eine Warnmeldung angezeigt. Warnmeldung Um diese Art von Warnung zu vermeiden, können Sie diese verwenden (vorgeschlagene Methode).

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

ODER beziehen Sie sich auch darauf .

Maulik Rajani
quelle
1

Wenn der Wert, den Sie festlegen möchten, eher eine Ganzzahl als eine Zeichenfolge ist, müssen Sie den Ganzzahlwert nicht manuell in eine Zeichenfolge konvertieren. Sie können einfach anrufen:

myLabel.integerValue = i;

Die integerValueEigenschaft wird in NSTextFieldder übergeordneten Klasse definiert NSControl. Auf dieser verknüpften Dokumentationsseite finden Sie eine vollständige Liste der unterstützten Methoden.

Jon Schneider
quelle
0

Ziel c:

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

Der ursprüngliche Code, den ich in meinem Code zum Anzeigen der Anwendungsversion verwende, lautet:

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

mach das einfach

[textField setString:@"random"];
Joe Manto
quelle
2
falsch. So richten Sie a ein UITextField. Die Frage bezieht sich auf Cocoa NSTextField, das ein anderes Tier ist.
Ente