无法更改工作表上的文本标签

时间:2012-06-12 23:11:55

标签: xcode cocoa nstextfield cocoa-sheet

我创建了一张表,我希望在程序进行数据处理时显示各种消息。工作表打开和关闭正确,我在工作表上有一个文本标签,它连接到我的主控制器(工作表的所有者)与IB插座。

Nib正确加载,正确打开和关闭,但静态文本标签永远不会更新。连接的IBOutlet以这种方式定义:

IBOutlet id mySheetText;

我用来尝试修改工作表上的文字的电话是:

[mySheetText setStringValue:@"Some text message..."];

如果Label位于主窗口中,则此格式可以正常工作,但如果标签位于工作表上,则无效。

IB中的所有连接似乎都是正确的。我确信我错过了一些非常简单的东西,而且我猜它与表格是一个与主窗口不同的“窗口”这一事实有关,但我似乎无法找到任何东西在文档中指出我正确的方向。

顺便说一句,这是我连接表单的方式......

NSWindow *mySheet;

@property (assign) IBOutlet NSWindow *mySheet;
@synthesize mySheet;

...并打开它:

if (!serverSyncSheet) {
    [NSBundle loadNibNamed:@"mySheetNibFile" owner:self];
}

[NSApp beginSheet: self.mySheet
   modalForWindow: [[NSApp delegate] mainWindow]
    modalDelegate: self
   didEndSelector: NULL
          contextInfo: NULL];

有什么想法吗?

*编辑*

好的,事实证明我部分正确。如果我尝试读取文本值,则表明它正在将其设置为正确的文本,但工作表未更新为显示更改。我怀疑我需要告诉窗口重绘...以前从未这样做过。回到文档,看看我是否能找到它。如果有人知道要打电话的方法,请告诉我。 :)谢谢!

1 个答案:

答案 0 :(得分:0)

嗯,我的怀疑是正确的......这很简单。

我只需要重绘窗口:

[mySheet display];

卫生署! :)