Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在NSTextView中创建指向某些文本的超链接_Objective C_Cocoa_Hyperlink_Nstextview - Fatal编程技术网

Objective c 在NSTextView中创建指向某些文本的超链接

Objective c 在NSTextView中创建指向某些文本的超链接,objective-c,cocoa,hyperlink,nstextview,Objective C,Cocoa,Hyperlink,Nstextview,我可以使用“链接面板”在NSTextView中创建指向某个url的超链接。或者,我可以使用NSAttributeString的NSLinkAttributeName属性手动添加链接 我不想创建指向某个外部url的超链接,但我希望能够在NSTextView中创建指向某个文本的超链接。您知道如何在页面中将某些文本设置为书签,然后创建指向该书签的超链接吗?有什么想法或例子可以说明这一点吗?我已经有一段时间没有这样做了,所以请恕我直言,但它是这样的: 你需要为你的应用程序定义一个协议来处理URL。它看起

我可以使用“链接面板”在NSTextView中创建指向某个url的超链接。或者,我可以使用NSAttributeString的NSLinkAttributeName属性手动添加链接


我不想创建指向某个外部url的超链接,但我希望能够在NSTextView中创建指向某个文本的超链接。您知道如何在页面中将某些文本设置为书签,然后创建指向该书签的超链接吗?有什么想法或例子可以说明这一点吗?

我已经有一段时间没有这样做了,所以请恕我直言,但它是这样的:

  • 你需要为你的应用程序定义一个协议来处理URL。它看起来像“myApplicationN”ame://aPath"
  • 在应用程序
    Info.plist
    文件中,在
    CFBundleURLTypes
    键下添加协议
  • 为应用程序编写代码,以便从NSWorkspace响应
    openURL
    。这意味着应用程序必须了解如何将URL样式的路径转换为其文档中的特定位置
    我认为处理URL路径的最佳方法是为每个文档分配一个UUID,然后为段落和句子分配一个数字方案。URL最终看起来像:
    myApplicationName://UUID/paragraphNumber/sentenceNumber/wordNumber
    。或者,您可以插入隐藏文本来定义锚定,只需搜索该锚定。

    这很有趣。谢谢我可以通过UUID的想法来了解如何在文档之间,而不仅仅是在文档中实现这一点。我的程序是一个基于核心数据的程序,所以我只需要NSTextView来显示适当的数据库条目(无NSWorkspace内容)。我认为最终文档中隐藏的锚是最好的主意,因为段落编号/句子编号/单词编号的想法会随着文档文本的变化而变得混乱。你知道如何将隐藏锚插入NSAttribute字符串吗?我还没有研究过。只需在NSAttributedString中插入一个自定义属性。您不需要使用内置属性,您可以定义自己的属性。谢谢大家。我在路上。我设置了一个自定义url方案。似乎我需要注册kAEGetURL applescript事件,如步骤1到3所示,以便在我的应用程序中接收url:。现在,我将致力于实现一个书签方案,以在NSTributedString中设置锚。然后,我将编写解析代码来处理传递的url,并根据需要选择书签。这太酷了!