Как вы устанавливаете текст в NSTextField?

134

Я пытаюсь установить текст в NSTextField, но -setStringValue:и -setTitleWithMnemonic:методы не работают. Любые идеи?

Александр Акерс
источник
Ваш NSTextField упоминается как IBOutlet и правильно подключен (если вы используете Interface Builder, который ...)
jlindenbaum

Ответы:

229

setStringValue:это способ сделать это. Вы должны убедиться, что ваша розетка установлена ​​правильно. (В отладчике убедитесь, что ваша переменная текстового поля не равна нулю.)

Кен Аспеслаг
источник
22
Способ сделать это в Swift - просто stringValue, тогда вы можете установить для него любую строку, какую захотите.
Кристофер Спенсер
43

Просто сделайте что-то вроде этого:

myLabel.stringValue = @"My Cool Text";
Джим
источник
17

Просто myLabel.stringValue = "MY TEXT"работает здесь, используя Swift и Xcode 6.

Александр
источник
Это хороший ответ для самой последней среды разработки. Кстати, почему это не является частью документации NSTextField? Сначала я пошел туда и подумал, что было бы действительно очевидно найти способ сделать это, но его там не было ... РЕДАКТИРОВАТЬ: Я нашел это, просто это не в очевидном месте "Темы", потому что stringValue на самом деле свойство родительского класса NSControl, и появляется в «Overview»
wllychng
8

Swift 4

self.yourTextField.stringValue = "Your_Value"

Примечание. При извлечении значения из self.yourTextField.stringValue будет получено предупреждающее сообщение, т. Е. Предупреждение Во избежание такого рода предупреждений вы можете использовать вот так (рекомендуемый способ)

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

ИЛИ также обратитесь к этому .

Маулик Раджани
источник
1

Если значение, которое вы пытаетесь установить, оказывается целым числом, а не строкой, вам не нужно преобразовывать целое значение в строку вручную; Вы можете просто позвонить:

myLabel.integerValue = i;

integerValueСвойство определяется на NSTextField«S родительского класса, NSControl. См. На этой странице связанной документации полный список методов, которые она поддерживает.

Джон Шнайдер
источник
0

ObjectiveC:

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

Исходный код, который я использую в своем коде для отображения версии приложения:

    [lblVersion setStringValue:[NSString stringWithFormat:@"v%@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]]];
Alp Altunel
источник
-3

просто сделай это

[textField setString:@"random"];
Джо Манто
источник
2
неправильно. Вот как вы создали UITextField. Вопрос в какао NSTextField, это другое животное.
утка