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?


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


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

17

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


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 .


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.


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

-3

mach das einfach

[textField setString:@"random"];

2
falsch. So richten Sie a ein UITextField. Die Frage bezieht sich auf Cocoa NSTextField, das ein anderes Tier ist.
Ente
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.