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?


É 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.)


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";

17

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


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 .


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.


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"]]];

-3

apenas faça isso

[textField setString:@"random"];

2
errado. É assim que você configura um UITextField. A pergunta é sobre o cacau NSTextField que é um animal diferente.
Duck
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.