NSTextFieldにテキストをどのように設定しますか?


134

NSTextFieldにテキストを設定しようとしていますが、-setStringValue:および-setTitleWithMnemonic:メソッドが機能していません。何か案は?


NSTextFieldはIBOutletとして参照され、適切に接続されていますか(つまり、Interface Builderを使用している場合...)
jlindenbaum

回答:


229

setStringValue:それを行う方法です。コンセントが正しく設定されていることを確認する必要があります。(デバッガーで、textfield変数がnullでないことを確認してください。)


22
Swiftでこれを行う方法は単にstringValueであり、必要な文字列に設定できます。
クリストファースペンサー

43

次のようなことをしてください:

myLabel.stringValue = @"My Cool Text";

17

ただ、myLabel.stringValue = "MY TEXT"スウィフトとXcode 6を使用して、ここに動作します。


これは、最新の開発環境に適した回答です。ところで、これがNSTextFieldのドキュメントに含まれていないのはなぜですか?私は最初にそこに行き、これを行う方法を見つけることは本当に明白だと思いましたが、それはありませんでした...編集:私はそれを見つけました、stringValueは実際には親クラスNSControlのプロパティで、「概要」に表示されます
wllychng

8

スウィフト4

self.yourTextField.stringValue = "Your_Value"

注:その時点でself.yourTextField.stringValueから値を取得すると警告メッセージが表示されます。つまり 警告メッセージ 、この種の警告を回避するには、次のように使用できます(推奨される方法)

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

または、これも参照しください。


1

設定しようとしている値が文字列ではなく整数の場合、手動で整数値を文字列に変換する必要はありません。あなたは呼び出すことができます:

myLabel.integerValue = i;

integerValueプロパティは、上で定義されているNSTextField、の親クラス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。問題は、別の動物であるCocoa NSTextFieldについてです。
ダック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.