gpt4 book ai didi

cocoa - 不可编辑的 NSTextView 可以使用 setAutomaticLinkDetectionEnabled 突出显示链接吗?

转载 作者:行者123 更新时间:2023-12-03 16:37:46 24 4
gpt4 key购买 nike

我一直在使用 NSTextView 来显示一些不可编辑的文本,并希望突出显示其字符串中的任何链接。我见过一些解析链接并添加属性的代码。这可以很好地工作,但我想知道是否可以以某种方式重用内置链接检测。

我尝试过设置:

[textView setEnabledTextCheckingTypes:NSTextCheckingTypeLink];
[textView setAutomaticLinkDetectionEnabled:YES];

并使用:

[textView checkTextInDocument:nil];

设置字符串后。

最佳答案

为了完整起见,以下是我手动添加到 NSTextView 的链接的方法:

- (void)highlightLinksInTextView:(NSTextView *)view {
NSDataDetector *linkDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:nil];
NSArray *matches = [linkDetector matchesInString:view.string options:0 range:NSMakeRange(0, view.string.length)];

[view.textStorage beginEditing];

for (NSTextCheckingResult *match in matches) {
if (!match.URL) continue;

NSDictionary *linkAttributes = @{
NSLinkAttributeName: match.URL,
};

[view.textStorage addAttributes:linkAttributes range:match.range];
}

[view.textStorage endEditing];
}

不幸的是,每次设置 NSTextView 字符串时都必须调用它。

关于cocoa - 不可编辑的 NSTextView 可以使用 setAutomaticLinkDetectionEnabled 突出显示链接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14398552/

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