gpt4 book ai didi

cocoa - 在 NSTextView 中创建应用内链接

转载 作者:行者123 更新时间:2023-12-03 16:10:55 25 4
gpt4 key购买 nike

我发现了这个小片段,它允许人们从 NSTextView 中的文本创建链接:

-(void)setHyperlinkWithTextView:(NSTextView*)inTextView
{
// create the attributed string
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] init];

// create the url and use it for our attributed string
NSURL* url = [NSURL URLWithString: @"http://www.apple.com"];
[string appendAttributedString:[NSAttributedString hyperlinkFromString:@"Apple Computer" withURL:url]];

// apply it to the NSTextView's text storage
[[inTextView textStorage] setAttributedString: string];
}

是否可以让链接指向我的应用程序中的某些资源,例如指向能够解释链接并分派(dispatch)到相应 View / Controller 的特定处理程序类?

最佳答案

您可以处理 NSTextView 委托(delegate)中链接的点击,特别是通过实现 textView:clickedOnLink:atIndex:方法。

如果您需要为每个链接存储更多信息,可以通过将对象存储为带有链接的字符串的自定义属性来实现:

NSDictionary* attributes = [NSDictionary dictionaryWithObjectsAndKeys:
yourObject, @"YourCustomAttributeName",
@"link", NSLinkAttributeName,
nil];
NSAttributedString* string = [[[NSAttributedString alloc] initWithString:@"Your string" attributes:attributes] autorelease];

确保您是否保存了您 use the NSCoding protocol 的属性字符串。而不是 NSAttributedString 的 RTF 方法,因为 RTF 无法存储自定义属性。

关于cocoa - 在 NSTextView 中创建应用内链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8859335/

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