Как вы устанавливаете текст в 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"]]];

-3

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

[textField setString:@"random"];

2
неправильно. Вот как вы создали UITextField. Вопрос в какао NSTextField, это другое животное.
утка
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.