如何通过点击现有(实际)tableview的一行来调用(打开)新的TableView

时间:2016-05-07 23:22:41

标签: objective-c macos cocoa model-view-controller

当我点击另一个表视图的行时,我一直在尝试使用不同的方法来打开一个带有tableview的新窗口,但没有任何方法可用,并且Web上的所有结果都是针对iOS或Swift的。 我使用xcode(7.2)在objective-c中工作,用于桌面(OS X,el capitan)。

1 个答案:

答案 0 :(得分:0)

  1. 在您正在使用的NSTableCellView上添加透明的NSButton。

  2. 创建一个新的NSWindowController子类,并在其中添加第二个NSTableView及其NSTableViewDelegate / DataSource。

  3. 将IBAction连接到(1)中的覆盖按钮,并让它实例化在(2)中创建的窗口控制器。调用showWindow:nil[controller.window makeKeyAndOrderFront:]以显示窗口控制器。不要忘记创建一个强大的控制器参考。

  4. 示例:

    - (IBAction)didPressOverlayButton:(id)sender {
        CustomWindowController *controller = [[CustomWindowController alloc] init];
        [controller showWindow:nil];
        [controller.window makeKeyAndOrderFront:nil];
        _newController = controller;
    }