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

标签 objective-c cocoa

也许我在这里遗漏了一些非常简单的东西(我希望如此),但是有没有一个技巧可以在运行时更改 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/

相关文章:

objective-c - ObjC 书籍和官方文档中内存管理描述之间的冲突

objective-c - Xcode 的第一步 - TableView 问题

cocoa - NSFileManager contentOfDirectoryAtPath 与 samba 路径的编码问题

ios - 如何在 ios 中正确设置推送通知

cocoa - NSTimer 的问题

ios - iPhone 不会忘记测试用户帐户(应用内购买)

ios - 提高 captureStillImageAsynchronouslyFromConnection 的速度

cocoa - NSTextView、appendString 和 NSConcreteTextStorage 的错误

objective-c - UIImage - 根据温度调整图像

ios - 使用 URLWithString NSURL 总是 nil