我有一个tabView,让我们说3个标签,每个tabViewItem包含一个webView。我想将每个标签的标题设置为每个webView呈现的HTML页面的document.title
。
基本上,每个NSTabViewItem
都有Webview
,来自[tabViewItem setView:webView];
。
现在,在网页视图的didFinishLoadForFrame
代理上,我可以通过NSString *title = [sender stringByEvaluatingJavaScriptFromString:@"document.title"]
检索HTML网页的标题。我只能访问sender
对象,所以我的问题是如何获取包含我的发件人的NSTabViewItem
。换句话说,我应该把什么放在< >
s
[<getNSTabViewItemFromSender:sender> setLabel:title]
答案 0 :(得分:0)
您可以通过sending it -superview
获取任何NSView的父级。
答案 1 :(得分: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];