gpt4 book ai didi

objective-c - NSTableView 中用于打开文件的按钮

转载 作者:行者123 更新时间:2023-12-03 17:48:31 26 4
gpt4 key购买 nike

我有一个NStableView填充有 NSMutableArray这是由 SQL 构建的数据库...一切都很好。

一个单元格显示本地存储的 pdf 的路径。我想让该单元格或文本打开 pdfPreview当点击时。该单元格可以是一个按钮或只是文本 - 这并不重要(我会做最简单的事情),只要它打开 Previewpdf 。我知道我可以实现以下调用 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 中:

  1. 设计您的 NSTableView 和 NSTableCellView
  2. 将上述子类分配给 NSTableCellView,并且不要忘记将其标识符设置为唯一的并将其 IBOutlet 和 IBAction 连接起来

在你的 NSTableViewDataSource/Delegate 中:

  1. 使用 makeViewWithIdentifer 创建一个表格单元格:并传入您在上面分配的标识符。
  2. 在该行的表格单元格上调用 setURL:

这比要求的更彻底,但是一旦您知道如何这样做,您应该能够将其添加和扩展为您想要添加的任何其他功能。

关于objective-c - NSTableView 中用于打开文件的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38874396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com