首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NSTableView中NSTextFieldCell中的可点击网址链接?

在 NSTableView 中,NSTextFieldCell 可以用于显示文本内容,包括可点击的网址链接。要实现这一功能,您需要使用 NSTextView 而不是 NSTextField 作为单元格的视图。

以下是如何在 NSTableView 中实现 NSTextFieldCell 中的可点击网址链接的步骤:

  1. 创建一个 NSTextView 的子类,并重写 mouseDown(with:) 方法。
代码语言:swift
复制
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)
        }
    }
}
  1. 在 NSTableView 的 dataSource 方法中,使用 ClickableTextView 作为单元格的视图。
代码语言:swift
复制
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 中的可点击网址链接就可以正常工作了。

优势:

  • 可以在 NSTableView 中轻松实现可点击的网址链接。
  • 可以自定义链接的样式和行为。

应用场景:

  • 在聊天应用中,可以使用可点击的网址链接来显示网址。
  • 在社交媒体应用中,可以使用可点击的网址链接来显示用户分享的链接。

推荐的腾讯云相关产品:

  • 腾讯云 CVM:腾讯云云服务器,可以用于部署和运行应用程序。
  • 腾讯云 COS:腾讯云对象存储,可以用于存储和管理应用程序的静态资源。
  • 腾讯云 CLB:腾讯云负载均衡,可以用于实现应用程序的负载均衡和优化。

产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

捕获Android文本链接点击事件

AndroidTTextView很强大,我们可以不仅可以设置纯文本为其内容,还可以设置包含网址和电子邮件地址内容,并且使得这些点击可以点击。...但是我们可以捕获并控制这些链接点击事件么,当然是可以。 本文将一个超级简单例子介绍一下如何实现在Android TextView 捕获链接点击事件。...关键实现 实现原理就是将所有的URL设置成ClickSpan,然后在它onClick事件中加入你想要控制逻辑就可以了。...href=\"http://www.google.com.hk\">Google HK"; myTextView.setText(getClickableHtml(url)); 实现自己控制...我们需要在ClickSpanonClick方法中加入自己控制逻辑,比如我们使用傲游浏览器打开点击链接

1.8K10

macOS开发之NSTableView应用详解

NSTableView应用详解 一、引言     和iOS开发UITableView有很大差别,NSTableView并非是一个滚动列表视图,其是一个不可滚动、支持多列多行原始列表视图。...若要使NSTableView支持滚动,通常会将其嵌套入NSScrollView控件。...这是一个最简单TableView示例,但是细读代码,麻雀虽小五脏俱全。首先NSTableView列是由NSTableColumn类描述。一个列表可以有多个列。...需要注意,如果只实现这两个方法,则NSTableView会自动从列对象NSTableColume取具体行视图,通过dataCellForRow方法。.../* 如果返回YES,则Cell交互能力会变强,例如NSButtonCell点击将会调用- (void)tableView:(NSTableView *)tableView setObjectValue

4.8K21
  • 关于Firefox链接点击弹出空白标签页问题分析

    前言 昨天突然有好心人提醒我说我网站某些链接在firefox打开时会弹出 about:blank 空白页面。本来自己在测试时候没怎么考虑浏览器兼容问题,毕竟自己总共也没写几个标签。... 我希望这是一个标签页,为了好看就继承了a标签样式,而且自己定义了点击事件,不过为了避免链接跳转就在href里用"javascript:void(0);"来阻止页面跳转。...这行简单代码在chrome里没有问题,不过在 firefox 如果点击这个标签就会立刻弹出一个 about:blank 空白标签页,非常不友好。...但是从逻辑上讲,a标签语义就是链接跳转,我们这种操作其实是违背了a标签设计初衷,因此 mozilla 官方并不推荐我们这样做。...比如说,我们认为a标签代表了用户链接跳转操作,那么我们就可以相信这肯定对应了一个url,那么我们就可以在浏览器功能强化中加上一个新功能就是支持用户将这个链接拖动到地址栏以打开新链接

    1.6K20

    Python批量爬虫下载文件——把Excel链接快速变成网址

    本文背景是:大学关系很好老师问我能不能把Excel1000个超链接网址对应pdf文档下载下来。 虽然可以手动一个一个点击下载,但是这样太费人力和时间了。...所以第一步就是把超链接对应网址梳理出来,再用Python去爬取对应网址pdf。 本文分享批量爬虫下载文件第一步,从Excel把超链接转换成对应网址。...二、把超链接转换成对应网址3个方法 网上有很多方法实现超链接转换,我分享3个自己尝试方法,前2个都失败了,最后1个是成功。...1 方法一:单个超链接鼠标点击转换 第一个方法是选中想要把超链接转换成对应网址单元格,接着双击鼠标左键,然后回车,单元格内容就会自动转换成网址。...至此,把Excel链接快速变成网址已经讲解完毕,感兴趣同学可以自己实现一遍。

    96720

    Linux链接与软链接

    inode号,它们名字不一定相同,但只要inode号一样就行,它们最终都链接到一个文件里,这就是硬链接。...也就是说,当文件链接数被目录记录了一次,文件链接数就增加了一次。所以,文件只要在目录里存在,它就至少有一个硬链接。...(因为引入了对目录硬连接就有可能在目录引入循环,在目录遍历时候系统就会陷入无限循环当中,这样导致无法定位到访问目录)     目录链接数包含目录自身名字,以及.和子目录里.. 791422...=(链接数-2) 软连接(符号链接):软连接是一个文件,只不过文件里存放是别的文件路径,软连接是一个单独文件,软连接可以通过路径访问源,如果源没了,软连接开始闪烁,找不到源, 软链接创建方式  ln...软连接: 软链接又称之为符号连接。软链接文件类似于Windows快捷方式。它实际上是一个特殊文件。在符号连接,文件实际上是一个文本文件,其中包含有另一文件位置信息。

    4.2K10

    Linux链接文件_软链接和硬链接

    一、链接文件介绍 Linux操作系统链接文件”分为硬链接(hard link)和软链接(symbolic link)。两种链接本质区别在于inode。...以下是详细介绍: 硬链接:当系统要读取一个文件时,会先读inode信息,然后再根据inode信息到块领域将数据取出来。...二、两者区别 硬链接记录是目标的inode,软链接记录是目标的路径。 软链接就像是快捷方式,而硬链接就像是备份。 软链接可以做跨分区链接,而硬链接由于inode缘故,只能在本分区链接。...注:上例du命令用来计算文件或者目录大小,-k表示以KB为单位,这里4,就指的是4KB;ll命令等同于 ls -l。...在上例,删除源文件passwd后,文件大小依旧没有改变。说明硬链接文件并不会复制数据块额外占用磁盘空间。 再看硬链接另外一个限制——不允许目录做硬链接。例: ?

    6.9K30

    Linux链接文件_软链接和硬链接

    一、链接文件介绍 Linux操作系统链接文件”分为硬链接(hard link)和软链接(symbolic link)。两种链接本质区别在于inode。...以下是详细介绍: 硬链接:当系统要读取一个文件时,会先读inode信息,然后再根据inode信息到块领域将数据取出来。...二、两者区别 硬链接记录是目标的inode,软链接记录是目标的路径。 软链接就像是快捷方式,而硬链接就像是备份。 软链接可以做跨分区链接,而硬链接由于inode缘故,只能在本分区链接。...注:上例du命令用来计算文件或者目录大小,-k表示以KB为单位,这里4,就指的是4KB;ll命令等同于 ls -l。...在上例,删除源文件passwd后,文件大小依旧没有改变。说明硬链接文件并不会复制数据块额外占用磁盘空间。 再看硬链接另外一个限制——不允许目录做硬链接。例: ?

    6.6K30

    Linux链接 ln

    本文目录 1 i节点 2 硬链接 3 软链接 i节点 在Linux创建文件时,Linux会做两件事情,第一是在设备上保留一块空间存储数据,第二是创建一个i节点(i-node)存放该文件基本信息。...05-12 10:37:53.792094043 +0800 Change: 2018-06-05 16:48:35.487772167 +0800 Birth: - 文件系统将i节点存放在一个大表,...文件名、i节点和文件内容关系示意图如下: ? 硬链接 可以使用ln命令创建一个硬链接(或者叫链接),它特点是会有多个目录项指向同一个i节点。...通过下面的命令创建新链接: ln TARGET LINK_NAME 其中TARGET是一个已经存在普通文件,而LINK_NAME是新链接名称。...软链接链接也叫做符号链接,这种链接特点是会新建一个全新文件,在该文件记录目标文件路径。

    2.8K10

    使用PHP正则抓取页面网址

    最近有一个任务,从页面抓取页面中所有的链接,当然使用PHP正则表达式是最方便办法。要写出正则表达式,就要先总结出模式,那么页面链接会有几种形式呢?...网页链接一般有三种,一种是绝对URL超链接,也就是一个页面的完整路径;另一种是相对URL超链接,一般都链接到同一网站其他页面;还有一种是页面内链接,这种一般链接到同一页面内其他位置。...搞清楚了链接种类,就知道要抓链接,主要还是绝对URL超链接和相对URL超链接。要写出正确正则表达式,就必须要了解我们查找对象模式。...服务器名称是告诉浏览器如何到达这个服务器方式,通常是域名或者IP地址,有时还会包含端口号(默认为80)。FTP协议,也可以包含用户名和密码,本文就不考虑了。....]+)第三个括号内匹配是相对路径。 写到这个时候,基本上大部分网址都能匹配到了,但是对于URL带有参数还不能抓取,这样有可能造成再次访问时候页面报错。关于参数RFC1738规范要求是用?

    3.1K20

    详解 Linux 链接与软链接

    Linux 链接文件类似于 Windows 快捷方式,Linux 链接文件分为硬链接和软链接,不过在具体介绍 Linux 链接和软链接之前,先来看看 Linux 文件系统中文件具体结构。...软链接链接(也称符号链接)可以看成是一个普通文件, 「只不过这个文件数据块存放是源文件索引节点号。」...软链接文件数据块仅仅存放着源文件索引节点号,这也是为什么源文件为 36 个字节,而软链接文件却有 9 个字节原因。...,在软链接删除源文件会影响到软链接使用,因此在 Linux 中会有很多地方标识文件是否为软链接: ls -l指令输出文件,其中十个字符第一个字符代表文件类型,如果文件为软链接文件则为l; Linux...例如某个文件文件系统空间已经用完了,但是现在必须在该文件系统下创建一个新目录并存储大量文件,那么可以把另一个剩余空间较多文件系统目录链接到该文件系统,这样就可以很好解决空间不足问题; 硬链接与软链接区别

    12.5K51

    Linux 链接和硬链接区别

    链接(Link)是一种快捷访问机制,它通过一个文件指向原始文件或目录方式实现快捷访问,同时还记录了原始文件或目录一些信息。 链接允许多个不同文件对同一个文件进行引用。...什么是软链接 符号链接(Symbolic Link)(symlink),又称 软链接(Soft Link),是一种特殊文件,它指向 Linux 系统上另一个文件或目录。...这和 Windows 系统快捷方式有点类似,链接文件记录只是原始文件路径,并不记录原始文件内容。...符号链接通常用于对库文件进行链接,也常用于链接日志文件和 网络文件系统(Network File System)(NFS)上共享目录。 什么是硬链接链接是原始文件一个镜像副本。...软链接和硬链接区别 下表列出了软链接和硬链接之间区别。 image.png

    3.2K20

    excel链接函数

    但是工作我们用比较多还是前两种: ——手工设置 ——超链接函数 手工设置方法: 这种方式相对来说比较简单,容易掌握,只需要点击鼠标选择链接文件就可以了。 首先选中目标单元格: ?...地址——代表链接目标文件。 左侧给出了网页、本工作薄文件、新建文档、电子邮件地址等四个可选项目,根据自己需要选择。 现在我将要显示文字输入:百度;在地址输入百度网址。 ?...(其实对于邮件地址而言,并不需要这么麻烦,只要在单元格输入网址邮箱号码,软件就可以自动识别并设置成超链接格式。...以上两个邮箱都是自带超链接,只需点击就可以(Windows邮箱链接打开后会自动激活系统配置outlook邮箱,没有配置过系统邮箱用户需要事先配置完成) ●●●●● 超链接函数方法: HYPERLINK...同样方式:我们可以利用超链接函数设置网址链接、邮箱链接

    3.9K90

    Excel无效链接(1)

    打开Excel文件时候,时常会遇到说外部链接无效警告。 无效链接大致有这么几种方式,有的很好解决,有的可就有些费神了。...image.png 另外新建一个excel文件(比如叫test2.xlsx),复制test.xlsx下拉框cell到该文件。比如复制到了两处,C4和G4处。...image.png 删除test.xlsx文件,再打开test2.xlsx时候,会报【无效链接错误。如果这个excel内容比较多时候,要找到哪一些cell使用了无效链接,有些许难度。...image.png 解决方法 定位是指向哪个外部文件link失效了。点击上面的【编辑link】,可以看到是指向test.xlsxlink失效了。...我们可以断定是C4和G4这两个单元格使用了“河北省”,修改他们值即可消除无效链接错误。

    2.4K10

    Windows 链接、软链接、符号链接、快捷方式

    Windows 不同链接支持场景各不相同 shortcut shortcut 中文名 快捷方式 存在方式 以.lnk文件方式存在,适用于Explorer等应用程序。...因为一个卷数据对象都有一个独一无二文件 ID,也可以说硬链接是指向目标文件 ID 链接。...由于不同文件指向是同样数据,所以无论给同一个文件创建多少个硬链接,他们占整个卷数据大小都是一样。 关联 在Explorer删除hard link,不影响targetfile。...是 NTFS 3.0 及以上文件系统(Windows 2000 及以上系统)特性,它是链接本地目录(跨卷)访问点,通过交接点操作都会被系统映射到实际目录上。...通过建立交接点,可以在保证一个目录实例(目录一致性)前提下,允许用户或程序从本地文件系统多个位置访问此目录。 适用范围 只适用于目录。只能使用绝对路径。

    8.5K41

    RecyclerView | 处理 RecyclerView 点击事件

    本文是介绍 RecyclerView 入门 系列文章 第三篇。如果您已经对创建 RecyclerView 有了一定认识,请继续阅读本文。如果尚未熟悉,建议您首先阅读本系列 第一篇文章。...当使用 RecyclerView 显示列表数据时候,您可能需要响应列表元素点击事件。该响应处理包括: 打开包含更多数据页面、显示 toast、删除某个元素等等。...相关响应事件虽然数不胜数,但是它们均需要通过 onClick() 来实现。 定义点击动作 在创建监听器之前,在 Activity 类添加一个函数用于处理点击之后响应操作。 <!...在初始化 Adapter 时候传入刚刚创建点击事件函数。...现在您 RecyclerView 可以响应点击事件了。 编程快乐! 下一步 请查阅包含 onClick() 完整示例。 感谢您阅读 RecyclerView 系列 文章第三篇。

    2.2K10

    Android listViewbutton点击事件

    在listviewlistitem设置事件响应,如果listitem中有button控件,这时候listitem就不会捕获到点击事件,而默认是listitembutton会捕获点击事件。...换句话说,就是点击了listitembutton,如何获取该listitem索引?如果能得到了这个索引,获取item里值就很容易了。...position = (Integer) v.getTag(); name = (String) list.get(position).get("name"); } } 详细例子参考这个链接...:android在Activity响应ListView内部按钮点击事件两种方法_今人不见古时月,今月曾经照古人博客-CSDN博客 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn.../160571.html原文链接:https://javaforall.cn

    2.2K10
    领券