Como você define o texto em um NSTextField?

134

Estou tentando definir o texto em um NSTextField, mas os métodos -setStringValue:e -setTitleWithMnemonic:não estão funcionando. Alguma ideia?

Alexsander Akers
fonte
É o seu NSTextField referenciado como um IBOutlet e anexado adequadamente (se você estiver usando Interface Builder que é ...)
jlindenbaum

Respostas:

229

setStringValue:é a maneira de fazer isso. Você deve se certificar de que sua tomada está sendo ajustada corretamente. (No depurador, verifique se a variável do campo de texto não é nula.)

Ken Aspeslagh
fonte
22
A maneira de fazer isso no Swift é justa stringValue, então você pode configurá-lo para qualquer string que desejar.
Christopher Spencer
43

Basta fazer algo assim:

myLabel.stringValue = @"My Cool Text";
Jim
fonte
17

Apenas myLabel.stringValue = "MY TEXT"funciona aqui, usando Swift e Xcode 6.

Alexander
fonte
Essa é uma boa resposta para o ambiente de desenvolvimento mais recente. Btw, por que isso não faz parte da documentação do NSTextField? Fui até lá primeiro e pensei que seria realmente óbvio descobrir como fazer isso, mas não estava lá ... EDIT: Encontrei, mas não está no lugar óbvio de "Tópicos", porque stringValue é realmente um propriedade da classe pai NSControl e aparece em "Visão geral"
wllychng 16/06/18
8

Swift 4

self.yourTextField.stringValue = "Your_Value"

Nota: Buscando o valor de self.yourTextField.stringValue, receberá uma mensagem de aviso, ou seja, Mensagem de aviso para evitar esse tipo de aviso, você pode usar assim (maneira sugerida)

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

OU também consulte isso .

Maulik Rajani
fonte
1

Se o valor que você está tentando definir for um número inteiro e não uma sequência, não será necessário converter o valor inteiro em uma sequência manualmente; você pode simplesmente ligar para:

myLabel.integerValue = i;

A integerValuepropriedade é definida na NSTextFieldclasse pai de NSControl. Consulte a página de documentação vinculada para obter uma lista completa dos métodos suportados.

Jon Schneider
fonte
0

ObjectiveC:

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

O código original que eu uso no meu código para exibir a versão do aplicativo é:

    [lblVersion setStringValue:[NSString stringWithFormat:@"v%@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]]];
Alp Altunel
fonte
-3

apenas faça isso

[textField setString:@"random"];
Joe Manto
fonte
2
errado. É assim que você configura um UITextField. A pergunta é sobre o cacau NSTextField que é um animal diferente.
Duck