在 NSTableView 中,NSTextFieldCell 可以用于显示文本内容,包括可点击的网址链接。要实现这一功能,您需要使用 NSTextView 而不是 NSTextField 作为单元格的视图。
以下是如何在 NSTableView 中实现 NSTextFieldCell 中的可点击网址链接的步骤:
mouseDown(with:)
方法。class ClickableTextView: NSTextView {
override func mouseDown(with event: NSEvent) {
let clickableRange = self.clickableRange(for: event)
if let textStorage = self.textStorage, clickableRange.location != NSNotFound, let url = textStorage.attribute(.link, at: clickableRange.location, effectiveRange: nil) as? URL {
NSWorkspace.shared.open(url)
} else {
super.mouseDown(with: event)
}
}
}
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
let cellView = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "ClickableTextView"), owner: self) as? ClickableTextView
let textStorage = NSTextStorage(string: "这是一个可点击的链接:https://www.example.com")
let range = NSRange(location: 0, length: textStorage.length)
textStorage.addAttribute(.link, value: URL(string: "https://www.example.com")!, range: range)
cellView?.textStorage = textStorage
return cellView
}
这样,在 NSTableView 中的 NSTextFieldCell 中的可点击网址链接就可以正常工作了。
优势:
应用场景:
推荐的腾讯云相关产品:
产品介绍链接地址:
腾讯技术创作特训营第二季第4期
企业创新在线学堂
腾讯技术创作特训营第二季第3期
开箱吧腾讯云
云+社区技术沙龙[第7期]
微服务平台TSF系列直播
领取专属 10元无门槛券
手把手带您无忧上云