更改容器视图的属性

时间:2014-05-16 00:25:39

标签: xcode macos cocoa tabview nstabview

我有一个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]

2 个答案:

答案 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];