Come si imposta il testo in un NSTextField?


134

Sto cercando di impostare il testo in un NSTextField, ma i metodi -setStringValue:e -setTitleWithMnemonic:non funzionano. Qualche idea?


Il tuo NSTextField viene indicato come IBOutlet e collegato correttamente (se stai utilizzando Interface Builder che è ...)
jlindenbaum,

Risposte:


229

setStringValue:è il modo di farlo. È necessario assicurarsi che la presa sia impostata correttamente. (Nel debugger, assicurarsi che la variabile del campo di testo non sia nulla.)


22
Il modo per farlo in Swift è giusto stringValue, quindi puoi impostarlo su qualsiasi stringa desideri.
Christopher Spencer,

43

Fai qualcosa del genere:

myLabel.stringValue = @"My Cool Text";

17

Proprio myLabel.stringValue = "MY TEXT"lavora qui, utilizzando Swift e Xcode 6.


Questa è una buona risposta per l'ambiente di sviluppo più recente. A proposito, perché questo non fa parte della documentazione di NSTextField? Sono andato lì per primo e ho pensato che sarebbe stato davvero ovvio scoprire come farlo, ma non era lì ... EDIT: l'ho trovato, semplicemente non è nel posto ovvio di "Argomenti", perché stringValue è in realtà un proprietà della classe padre NSControl, e appare in "Panoramica"
wllychng il

8

Swift 4

self.yourTextField.stringValue = "Your_Value"

Nota: il recupero del valore da self.yourTextField.stringValue in quel punto riceverà un messaggio di avviso, ad esempio Messaggio di avviso Per evitare questo tipo di avviso è possibile utilizzare in questo modo (modo suggerito)

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

O anche fare riferimento a questo .


1

Se il valore che stai cercando di impostare sembra essere un numero intero anziché una stringa, non è necessario convertire manualmente il valore intero in una stringa; puoi semplicemente chiamare:

myLabel.integerValue = i;

La integerValueproprietà è definita sulla NSTextFieldclasse genitore 's, NSControl. Consulta la pagina di documentazione collegata per un elenco completo dei metodi supportati.


0

ObjectiveC:

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

il codice originale che uso nel mio codice per visualizzare la versione dell'applicazione è:

    [lblVersion setStringValue:[NSString stringWithFormat:@"v%@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]]];

-3

fai questo

[textField setString:@"random"];

2
sbagliato. Ecco come si configura a UITextField. La domanda riguarda Cocoa NSTextField che è un animale diverso.
Duck
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.