0

我有一个带有 3 个选项卡的 tabView,每个 tabViewItems 都包含一个 webView。我想将每个选项卡的标题设置为document.title每个 webView 正在呈现的 HTML 页面的标题。

所以基本上,每个NSTabViewItem都有一个Webview, via [tabViewItem setView:webView];。现在,在didFinishLoadForFramewebviews 的委托上,我可以通过执行NSString *title = [sender stringByEvaluatingJavaScriptFromString:@"document.title"]. 我只能访问该sender对象,所以我的问题是如何获取NSTabViewItem 包含我的发件人的内容。换句话说,我应该在< >s里面放什么

[<getNSTabViewItemFromSender:sender> setLabel:title]
4

2 回答 2

0

由于您的 Web 视图对象设置为选项卡的视图,因此您可以找到正在使用您的特定 Web 视图的选项卡项。

您可以将其作为一个类别实现NSTabView(类似这样)......

- (NSTabViewItem*)tabViewItemWithView:(NSView*)view {
    for (NSTabViewItem *item in [self tabViewItems]) {
        if (item.view == view) {
            return item;
        }
    }
    return nil;
}

然后,您可以为包含您的 Web 视图的选项卡项设置标签。

[[tabView tabViewItemWithView:webView] setLabel:label];
于 2014-11-13T14:37:56.503 回答
0

您可以通过发送它-superview来获取任何 NSView 的父级。

于 2014-05-16T01:46:27.880 回答