我正在显示带有属性文字的标签。标签包含一些超链接。 我知道这些只能在textView中点击,但我认为它们在带有NSAttributedText的UILabel中显示为蓝色和下划线。
在我的情况下,链接与其他文本没有任何不同(不是蓝色或带下划线)。我是否需要更改UILabel的任何属性以使链接在UILabel中显示为蓝色?
let style = NSMutableParagraphStyle()
style.lineBreakMode = NSLineBreakMode.ByWordWrapping
let attributes = [NSFontAttributeName: self.defaultFont(), NSParagraphStyleAttributeName: style]
let attributedString = NSAttributedString(string: "www.somelink.com", attributes: attributes)
label.attributedText = attributedString
答案 0 :(得分:4)
您需要将NSLinkAttributeName
属性添加到NSAttributedString
,如下所示:
attributedString.addAttribute(NSLinkAttributeName, value: "www.somelink.com", range: attributedString.string.rangeOfString("www.somelink.com"))
请检查您的需求范围。
答案 1 :(得分:1)
您需要NSLinkAttributeName。以上答案应该有效。
'use strict';
var SudoConstructor = (function () {
/* We need bind, < IE9 needs a (tiny) polyfill */
function protoEsqDeclare(sudoThis) {
return sudoThis;
}
function protoEsqSet(sudoThis, newValA, newValB) {
sudoThis.valA = newValA;
sudoThis.valB = newValB;
}
function instanceCreator(valA, valB) {
var sudoThis = {
valA: valA,
valB: valB
};
return {
declare: protoEsqDeclare.bind(null, sudoThis),
set: protoEsqSet.bind(null, sudoThis)
};
}
return instanceCreator;
}());