0

たとえば、3 つのタブを持つ tabView があり、各 tabViewItems には webView が含まれています。document.title各タブのタイトルを、各 webView がレンダリングしている HTML ページのタイトルとして設定したいと考えています。

基本的に、それぞれNSTabViewItemWebview, viaがあり[tabViewItem setView:webView];ます。これでdidFinishLoadForFrame、webviews のデリゲートで、. を実行して HTML ページのタイトルを取得できますNSString *title = [sender stringByEvaluatingJavaScriptFromString:@"document.title"]。私はオブジェクトにしかアクセスできないので、私の質問は、送信者を含むsenderものをどのように取得できるかです。つまり、s の中に何を入れればよいかNSTabViewItem < >

[<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 に答える