我有一个NStableView
填充有 NSMutableArray
这是由 SQL
构建的数据库...一切都很好。
一个单元格显示本地存储的 pdf
的路径。我想让该单元格或文本打开 pdf
与 Preview
当点击时。该单元格可以是一个按钮或只是文本 - 这并不重要(我会做最简单的事情),只要它打开 Preview
与 pdf
。我知道我可以实现以下调用 Preview
[[NSWorkspace sharedWorkspace] openFile:theUrl withApplication:@"Preview"];
我不确定的部分是如何使单元格调用该操作...也就是说,如何将单元格转换为按钮,其中单元格的内容(路径)传递给操作作为“网址”
提前致谢...
最佳答案
创建 NSTableCellView 的子类并添加以下内容:
在您的界面中:
@property (nonatomic, strong) NSURL *url;
@property (nonatomic, weak) IBOutlet NSButton *urlButton;
在您的实现中:
- (void)setURL:(NSURL *)url {
_url = url;
_urlButton.title = url.absoluteString ?: @"Missing url";
}
- (IBAction)didPressURLButton {
[[NSWorkspace sharedWorkspace] openFile:_url withApplication:@"Preview"];
}
在 Storyboard/ Nib 中:
- 设计您的 NSTableView 和 NSTableCellView
- 将上述子类分配给 NSTableCellView,并且不要忘记将其标识符设置为唯一的并将其 IBOutlet 和 IBAction 连接起来
在你的 NSTableViewDataSource/Delegate 中:
- 使用 makeViewWithIdentifer 创建一个表格单元格:并传入您在上面分配的标识符。
- 在该行的表格单元格上调用 setURL:
这比要求的更彻底,但是一旦您知道如何这样做,您应该能够将其添加和扩展为您想要添加的任何其他功能。
关于objective-c - NSTableView 中用于打开文件的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38874396/