我试图让 WebKit 显示当前打开的文档窗口的页面标题,其中包括 WebView。运行应用程序后,该文档不会显示。
我正在使用 Document.m 和 windowNibName 来实现此目的,但我确信我所做的事情是错误的。我认为这可能是两个 NSStrings 一起使用的,但我不能拥有。虽然如果我没有它们,我无法返回文档标题...(WebKit/WebKit.h 已导入)
- (NSString)windowNibName:(WebView *)sender didReceiveTitle:(NSString *)title forFrame:(WebFrame *)frame
{
// Report feedback only for the main frame.
if (frame == [sender mainFrame]){
[[sender window] setTitle:title];
}
return @"Document";
}
最佳答案
您已经实现了一个名为 windowNibName:didReceiveTitle:forFrame:
的方法,但是没有任何东西发送这样的消息(除非您是,但如果您是,那么您就留下了该消息代码输出)。
正确的方法名称是webView:didReceiveTitle:forFrame:
。假设窗口中只有一个 Web View ,文档中也只有一个窗口,并且文档是 Web View 的委托(delegate),那么您可以简单地 set the document's display name从那里开始。
如果您遇到更复杂的情况,每个窗口有多个 Web View 和/或每个文档有多个窗口,那么您需要向 Web View 请求 its window ,its window controller 的窗口,以及 its document 的窗口 Controller ,然后如上设置文档的显示名称。
此外,windowNibName
与将文档标题设置为网页标题无关。 Web View 可能还没有开始加载页面,即使它有要加载的 URL。这就是为什么您需要成为 Web View 的委托(delegate)并响应该委托(delegate)消息。
关于objective-c - NSDocument 使用 WebKit 显示页面名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14927515/