问题
I can create a hyperlink to some url in an NSTextView using the "Link Panel". Or I can add a link manually using the NSLinkAttributeName attribute of NSAttributedString.
I don't want to make a hyperlink to some external url though, I want to be able to create a hyperlink to some text within the NSTextView. Do you know how in Pages you can set some text as a Bookmark, and then you can make a hyperlink to that bookmark? Any ideas or examples of how to go about that?
回答1:
I haven't done this in a while so take this with a grain of salt but it goes something like:
- You need to define a protocol for you app to handle URLs. It will look something like "myApplicationName://aPath"
- In the apps
Info.plist
file add the protocol underCFBundleURLTypes
key. - Write code for the app to respond to
openURL
from NSWorkspace. This means the app will have to understand how to convert a URL style path to a specific location in one of its documents.
I think the best method for handling the URL path is to assign a UUID to each document and then a numeric scheme to the paragraph and sentences. The URL ends up looking like: myApplicationName://UUID/paragraphNumber/sentenceNumber/wordNumber
. Alternatively you can insert hidden text to define an anchor and just search for that anchor.
来源:https://stackoverflow.com/questions/2616580/create-hyperlink-to-some-text-in-nstextview