也许我在这里遗漏了一些非常简单的东西(我希望如此),但是有没有一个技巧可以在运行时更改 NSPanel 的标题?明显的 [panel setTitle:@"New title"] 似乎不起作用。
我正在尝试显示一个包含 WebView 的常规面板,并且我希望面板的标题能够反射(reflect) HTML 内容的标题。
我对 NSWindowController 进行了子类化并调用了 initWithWindowNibName。我将 Nib 中的类从 NSWindow 更改为 NSPanel,一切似乎都工作正常。在我的窗口 Controller 中,我这样做了:
- (void)windowDidLoad {
[super windowDidLoad];
[[self window] setTitle:@"My New Title"];
}
(我实际上会在 webView:didReceiveTitle:forFrame 委托(delegate)中设置标题,但这更容易显示)。
我验证了代码正在被调用,并且没有报告错误,但标题从未改变。有什么想法吗?
最佳答案
在包含面板的 nib 文件中,确保文件所有者的类已设置为 NSWindowController 子类,并且文件所有者的 window
导出已连接到面板。否则,窗口 Controller 将不知道它应该管理哪个窗口,并且[self window]
返回nil
。
关于objective-c - 如何在运行时更改 NSPanel 的标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7605258/