cocoa – NSTextField的属性字符串在渲染时被延迟

cocoa – NSTextField的属性字符串在渲染时被延迟,第1张

概述我在IB中有一个绑定到控制器的标签(NSTextField). 控制器在awakeFromNIB上,将标签的attributedStringValue设置为包含一些彩色文本和一个或两个链接. 当您看到标签时,它包含正确的字符串值,但某些格式会丢失 – 直到您单击标签,并且它会更新为包含正确的格式. 我正在使用此代码来设置值: [self.testTextField setAllowsEditing 我在IB中有一个绑定到控制器的标签(NSTextFIEld).
控制器在awakeFromNIB上,将标签的attributedStringValue设置为包含一些彩色文本和一个或两个链接.

当您看到标签时,它包含正确的字符串值,但某些格式会丢失 – 直到您单击标签,并且它会更新为包含正确的格式.

我正在使用此代码来设置值:

[self.testTextFIEld setAllowsEditingTextAttributes:YES];[self.testTextFIEld setSelectable:YES];NSMutableAttributedString *linkString = [[NSMutableAttributedString alloc] initWithString:@"hit this "];[linkString beginEditing];NSMutableAttributedString* attrString = [[NSMutableAttributedString alloc] initWithString:@"link"];NSRange range = NSMakeRange(0,[attrString length]);[attrString addAttribute:NSlinkAttributename value:[[NSURL URLWithString:@"http://Google.com"] absoluteString] range:range];[attrString addAttribute:NSUnderlinestyleAttributename value:[NSNumber numberWithInt:NSUnderlinePatternDot] range:range];[attrString addAttribute:NSForegroundcolorAttributename value:[NScolor blackcolor] range:range];[linkString appendAttributedString:attrString];[linkString appendAttributedString:[[NSAttributedString alloc] initWithString:@" to search"]];[linkString addAttribute:NSForegroundcolorAttributename value:[NScolor redcolor] range:NSMakeRange(0,[linkString length])];[linkString endEditing];[self.testTextFIEld setAttributedStringValue:linkString];

基于此示例,您将看到红色字符串和默认Label字体.
然后,当您单击标签时,字体会更改大小和面部,并且链接会神奇地呈现.

关于如何在第一次正确渲染字符串的任何想法?

解决方法 我遇到了同样的问题.我发现的解决方案是在属性字符串上显式设置NSFontAttributename.我创建了一个NSFont对象,它匹配我在IB中为我的文本字段设置的字体,并设置该属性,如下所示:

NSFont *Font = [NSFont FontWithname:@"LucIDa Grande" size:(CGfloat)13.0];[attrString addAttribute:NSFontAttributename value:Font range:range];
总结

以上是内存溢出为你收集整理的cocoa – NSTextField的属性字符串在渲染时被延迟全部内容,希望文章能够帮你解决cocoa – NSTextField的属性字符串在渲染时被延迟所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1016286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存