NSTextField(标签)属性文本:选择

Posted

技术标签:

【中文标题】NSTextField(标签)属性文本:选择【英文标题】:NSTextField (Label) Attributed Text: Select 【发布时间】:2011-02-25 18:20:25 【问题描述】:

我有一个 NSTextField 标签,其中包含属性文本。颜色和大小与默认值不同。 (文本有点大和绿色)现在,我需要能够选择标签中的文本,以便单击嵌入在属性文本中的超链接。这很好用;但是,在选择文本时,文本的格式将恢复为默认值(一个较小的,黑色字体)。

是否有办法阻止这种行为,以便在用户单击(选择文本)标签时保留我的样式?

编辑:作为记录,我有另一个带有白色文本的标签,在选择时不会改变颜色,只有大小。

【问题讨论】:

【参考方案1】:

好的。在进一步研究为什么白色会“粘住”以及为什么绿色不会“粘”后,我发现在 Interface Builder 中设置的任何文本属性不会在选择后保留。

因此,解决方案是始终使用 NSAttributedString 调用 setAttributedStringValue:,该字符串具有您希望确保在标签上选择期间保持不变的属性。

【讨论】:

谢谢,但能否附上一点代码sn-p?我需要这样做——在标签上放一个(青色,不是绿色)较大的文本,带有超链接...... 不太明白解决办法。我正在通过setAttributedStringValue: 设置字符串,但仍然面临问题。【参考方案2】:

我遇到了同样的问题。不幸的是,接受的答案并没有解决它。即使我设置了attributedStringValue,我的文本样式在被选中时仍然会发生变化。

感谢in this question 的回复,我能够通过调用来部分解决问题:

label.allowsEditingTextAttributes = true

【讨论】:

以上是关于NSTextField(标签)属性文本:选择的主要内容,如果未能解决你的问题,请参考以下文章

NSTextField:公开其复制和粘贴方法

Mac OS X:删除标签中的文本(NSTextField)

NSTextField,在 Swift 中更改文本

聚焦一个 NSTextField

在 SWIFT OS X 中以编程方式添加和删除 NSTextField

根据 Font/Size 改变 NSTextField 的高度