如何在运行时更改NSPanel的标题?

时间:2011-09-30 02:04:53

标签: objective-c cocoa

也许我在这里遗漏了一些非常简单的东西(我希望如此),但在运行时是否有改变NSPanel标题的技巧?显而易见的[panel setTitle:@“New title”]似乎不起作用。

我正在尝试显示包含WebView的常规面板,我希望面板的标题能够反映HTML内容的标题。

我将NSWindowController子类化并调用了initWithWindowNibName。我将笔尖中的类从NSWindow更改为NSPanel,一切似乎都正常。在我的窗口控制器中,我这样做了:

- (void)windowDidLoad {
    [super windowDidLoad];
    [[self window] setTitle:@"My New Title"];
}

(我实际上将在webView中设置标题:didReceiveTitle:forFrame委托,但这更容易显示。)

我验证了代码被调用,并且没有报告错误,但标题永远不会改变。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

在包含面板的nib文件中,确保已将文件所有者的类设置为NSWindowController子类,并且文件所有者的window出口已连接到面板。否则,窗口控制器将不知道它应该管理哪个窗口,并且[self window]返回nil

答案 1 :(得分:0)

您正在设置标题,但您没有告诉窗口再次显示自己。