0

我试图让 WebKit 显示当前打开的文档窗口的页面标题,其中包括一个 WebView。运行应用程序后,该文档不会显示。

我正在使用 Document.m 和 windowNibName 来实现这一点,但我确定我在做什么是错误的。我认为这可能与我不能拥有的两个 NSString 一起使用。虽然如果我没有它们,我将无法返回文档标题...(已导入 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";
}
4

1 回答 1

2

您已经实现了一个名为 的方法windowNibName:didReceiveTitle:forFrame:,但没有发送这样的消息(除非是,但如果您是,则您忽略了该代码)。

正确的方法名称是webView:didReceiveTitle:forFrame:. 假设您在窗口中只有一个 Web 视图并且在文档中只有一个窗口,并且假设文档是 Web 视图的委托,您可以从那里简单地设置文档的显示名称

如果您有更复杂的事情,每个窗口有多个 Web 视图和/或每个文档有多个窗口,那么您需要询问 Web 视图的 window、 window 的window controller和 window controller的document,然后如上设置文档的显示名称。

此外,windowNibName与将文档的标题设置为网页的标题无关。Web 视图可能还没有开始加载页面,如果它甚至有一个要加载的 URL。这就是为什么您需要成为 Web 视图的代理并响应该代理消息的原因。

于 2013-02-19T05:39:25.337 回答