Jak ustawić tekst w NSTextField?

134

Próbuję ustawić tekst w NSTextField, ale metody -setStringValue:i -setTitleWithMnemonic:nie działają. Jakieś pomysły?

Alexsander Akers
źródło
Czy Twój NSTextField jest wymieniony jako IBOutlet i poprawnie podłączony (jeśli używasz Interface Builder to znaczy ...)
jlindenbaum

Odpowiedzi:

229

setStringValue:jest sposób, aby to zrobić. Powinieneś upewnić się, że gniazdko jest prawidłowo ustawione. (W debugerze upewnij się, że zmienna textfield nie ma wartości null).

Ken Aspeslagh
źródło
22
Sposób na zrobienie tego w Swift jest prosty stringValue, możesz ustawić dowolny ciąg znaków, który chcesz.
Christopher Spencer
43

Po prostu zrób coś takiego:

myLabel.stringValue = @"My Cool Text";
Jim
źródło
17

Po prostu myLabel.stringValue = "MY TEXT"działa tutaj, używając Swift i Xcode 6.

Alexander
źródło
To dobra odpowiedź dla najnowszego środowiska deweloperskiego. Btw, dlaczego nie jest to częścią dokumentacji NSTextField? Poszedłem tam pierwszy i pomyślałem, że byłoby naprawdę oczywiste, jak to zrobić, ale go tam nie było ... EDYCJA: znalazłem go, po prostu nie ma go w oczywistym miejscu „Tematy”, ponieważ stringValue jest w rzeczywistości właściwość klasy nadrzędnej NSControl i pojawia się w "Overview"
wllychng
8

Szybki 4

self.yourTextField.stringValue = "Your_Value"

Uwaga: Pobieranie wartości z self.yourTextField.stringValue w tym przypadku spowoduje wyświetlenie komunikatu ostrzegawczego, tj. Wiadomość ostrzegawcza Aby uniknąć tego rodzaju ostrzeżenia, możesz użyć w ten sposób (sugerowany sposób)

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

LUB też odnieś się do tego .

Maulik Rajani
źródło
1

Jeśli wartość, którą próbujesz ustawić, jest liczbą całkowitą, a nie łańcuchem, nie musisz ręcznie konwertować wartości całkowitej na łańcuch; możesz po prostu zadzwonić:

myLabel.integerValue = i;

integerValueNieruchomość jest zdefiniowana w NSTextField„s klasy dominującej NSControl. Zobacz stronę z połączoną dokumentacją, aby uzyskać pełną listę obsługiwanych metod.

Jon Schneider
źródło
0

Cel C:

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

oryginalny kod, którego używam w moim kodzie do wyświetlania wersji aplikacji to:

    [lblVersion setStringValue:[NSString stringWithFormat:@"v%@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]]];
Alp Altunel
źródło
-3

po prostu zrób to

[textField setString:@"random"];
Joe Manto
źródło
2
źle. W ten sposób konfigurujesz plik UITextField. Pytanie dotyczy Cocoa NSTextField, czyli innego zwierzęcia.
Duck,