试图制作标签式浏览器

时间:2014-07-26 19:32:43

标签: macos cocoa webview tabview

我遇到了cocoa问题,当我运行应用程序时,标签会按预期添加,但所有Web视图都会从url字段中获取相同的字符串。

基本上,如果我在一个标签上转到谷歌,那么它就会全部转到Google上。

有没有办法只让所选标签上的网页视图响应,而不是其他标签?

以下是代码:

- (IBAction)newTab:(id)sender {
NSTabViewItem *item = [NSTabViewItem new];
[item setView:_webView];
[item setLabel:@"New Tab"];
[_tabView addTabViewItem:item];
}

1 个答案:

答案 0 :(得分:0)

您似乎正在创建新标签页,然后将WebView移动到该标签页。要为每个选项卡创建新的Web视图,您有一些选项,但一个是使用NSViewController:

  1. 如果您在与标签视图相同的xib中创建Web视图,请将其移动到单独的xib。将该xib的所有者的类更改为NSViewController。
  2. 在代码中添加新选项卡时,请加载xib(假设它名为WebView.xib):
  3. - (IBAction) newTab: (id) sender
    {
        NSTabViewItem *item = [[NSTabViewItem alloc] init];
        NSViewController *viewController =
            [[NSViewController alloc] initWithNibName: @"WebView" bundle: nil];
        WebView *webView = [viewController view];
        [item setView: webView];
    
        [_tabView addTabViewItem: item];
        [_webViewControllers addObject: viewController]; // Store the view controller, remove when the user closes the tab.
    }
    

    这是一个关于视图控制器的教程:http://comelearncocoawithme.blogspot.fi/2011/07/nsviewcontrollers.html