我创建了一张表,我希望在程序进行数据处理时显示各种消息。工作表打开和关闭正确,我在工作表上有一个文本标签,它连接到我的主控制器(工作表的所有者)与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];
有什么想法吗?
*编辑*
好的,事实证明我部分正确。如果我尝试读取文本值,则表明它正在将其设置为正确的文本,但工作表未更新为显示更改。我怀疑我需要告诉窗口重绘...以前从未这样做过。回到文档,看看我是否能找到它。如果有人知道要打电话的方法,请告诉我。 :)谢谢!
答案 0 :(得分:0)
嗯,我的怀疑是正确的......这很简单。
我只需要重绘窗口:
[mySheet display];
卫生署! :)