我有一个NStableView
,其中填充了一个NSMutableArray
,该SQL
是从pdf
数据库构建的...都很好。
一个单元格显示到本地存储的pdf
的路径。我想让该单元格或文本在单击时用Preview
打开Preview
。单元格可以是按钮,也可以是文本,只要它用pdf
打开Preview
,就不是很重要(我将做最简单的事情)。我知道我可以实现以下方法来调用
[[NSWorkspace sharedWorkspace] openFile:theUrl withApplication:@"Preview"];
我不确定的部分是如何使单元格调用该动作...也就是说,如何将单元格变成一个按钮,该单元格的内容(路径)作为“ theUrl”传递给该动作”
提前致谢...
最佳答案
创建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"];
}
在情节提要/笔尖中:
设计您的NSTableView和NSTableCellView
将上面的子类分配给NSTableCellView,不要忘记将其标识符设置为唯一的名称并连接其IBOutlet和IBAction
在您的NSTableViewDataSource / Delegate中:
使用makeViewWithIdentifer:创建一个表格单元格,然后传递您在上面分配的标识符。
在表格单元格中为该行调用setURL:
这比要求的要彻底,但是一旦您知道如何执行此操作,就应该可以将其添加并扩展到要添加的任何其他功能。
关于objective-c - NSTableView中的按钮以打开文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38874396/