0

カスタムMyWindow.xibMyWindowControllerを使用して小さな Cocoa アプリケーションを作成しました。ウィンドウには NSTextField (ラベル) が含まれており、AppDelegate からこのコントローラーとそのビューを初期化し、ラベルにテキストを設定してウィンドウを表示します。

self.controller =[[MyWindowController alloc] initWithWindowNibName:@"MyWindow"];
[self.controller setText:@"My text"];
[self.controller showWindow:self];

ただし、ウィンドウが表示されると、デフォルトの「ラベル」テキストが引き続き表示されます。なんで?

サンプル プロジェクトはhttp://s000.tinyupload.com/?file_id=00611347759347594342からダウンロードできます。

4

3 に答える 3

2

ここでの問題は、ラベルがまだ実際には視覚化されていないため、テキストを変更しても何も起こらないことです。これを回避する方法の 1 つは、コントローラーに文字列プロパティを設定して、次のように設定することです。

self.controller.textForLabel = @"My text";

次に、viewWillAppear:コントローラーの .m でテキストを設定できます。

[self setText:self.textForLabel];
于 2013-10-29T20:27:33.187 に答える
0

それを解決する 2 つの方法: 2 行のコードを置き換え、ウィンドウを表示した後にテキストを設定すると、次のようになります。

[self.controller showWindow:self];
[self.controller setText:@"My text"];

もう 1 つの方法は、「-(void)windowDidLoad」関数内の MyWindowController.m ファイルのラベル テキストを変更することです。

于 2013-10-29T20:35:30.387 に答える