【发布时间】:2016-05-07 23:22:40
【问题描述】:
当我点击另一个表格视图的一行时,我一直在尝试实现不同的方法来打开一个带有表格视图的新窗口,但是没有任何效果,并且网络上的所有结果都是针对 iOS 或 Swift 的。 我正在使用 xcode (7.2) 用于桌面(OS X,el capitan)的objective-c。
【问题讨论】:
标签: objective-c macos cocoa model-view-controller
当我点击另一个表格视图的一行时,我一直在尝试实现不同的方法来打开一个带有表格视图的新窗口,但是没有任何效果,并且网络上的所有结果都是针对 iOS 或 Swift 的。 我正在使用 xcode (7.2) 用于桌面(OS X,el capitan)的objective-c。
【问题讨论】:
标签: objective-c macos cocoa model-view-controller
在您正在使用的 NSTableCellView 顶部添加一个透明的 NSButton。
创建一个新的 NSWindowController 子类,并在其中添加第二个 NSTableView 及其 NSTableViewDelegate/DataSource。
将 IBAction 连接到 (1) 中的覆盖按钮,并让它实例化 (2) 中创建的窗口控制器。调用showWindow:nil 和[controller.window makeKeyAndOrderFront:] 显示窗口控制器。不要忘记创建对控制器的强引用。
例子:
- (IBAction)didPressOverlayButton:(id)sender {
CustomWindowController *controller = [[CustomWindowController alloc] init];
[controller showWindow:nil];
[controller.window makeKeyAndOrderFront:nil];
_newController = controller;
}
【讨论】: