请参阅下面的编辑#1,其中ISOLATES的问题比原始问题更好
我正在尝试让linkTextAttributes为UITextView工作,我对此感到非常沮丧 - 这可能是一个直接的Obj-C问题。我宁愿不去NSAttribtedString,但可能不得不这样做。我只是想删除链接上的下划线。这有效:
textview.linkTextAttributes = @{NSForegroundColorAttributeName : [UIColor yellowColor]};
使其变黄但我需要取出底座。它看起来应该是这样的:
textview.linkTextAttributes = @{NSForegroundColorAttributeName : [UIColor yellowColor],
NSUnderlineStyleAttributeName: NSUnderlineStyleNone};
但是我得到了以下有些神秘的错误:
我试过了:
textview.linkTextAttributes = @{
NSForegroundColorAttributeName : [UIColor yellowColor],
NSUnderlineStyleAttributeName: [NSNumber numberWithInt: NSUnderlineStyleNone]};
删除错误但不删除下划线。关于如何解决这个问题的任何想法?或者上面的语法是否正确?
所以我试图将问题更多地分解为一个新项目。这是来自主UIViewController的viewDidLoad;只是想删除下划线:
- (void)viewDidLoad
{
[super viewDidLoad];
UITextView *textview= [[UITextView alloc]initWithFrame:CGRectMake(50.0F, 50.0F , 200.0f, 100.0f)];
[textview setValue:@"here is my thinking <a href='http://www.some.com'>me</a>" forKey:@"contentToHTMLString"];
textview.layer.borderWidth = 5.0f;
textview.layer.borderColor = [[UIColor grayColor] CGColor];
textview.dataDetectorTypes = UIDataDetectorTypeLink;
textview.linkTextAttributes = @{
NSForegroundColorAttributeName : [UIColor blueColor],
NSUnderlineStyleAttributeName: @(NSUnderlineStyleNone)};
[self.view addSubview:textview];
}
和输出:
答案 0 :(得分:0)
将其更改为:
textview.linkTextAttributes = @{
NSForegroundColorAttributeName : [UIColor yellowColor],
NSUnderlineStyleAttributeName : @(NSUnderlineStyleNone)};
答案 1 :(得分:0)
希望其他人在Swift中尝试相同:
如果您在ADC网站中搜索“NSUnderlineStyleNone”或“NSUnderlineStyleSingle”,您将只能找到:
NSUnderlineStyleNone 不要画下划线。
在OS X v10.3及更高版本中可用。
:(
swift的快速补丁:
var下划线:NSNumber = NSNumber(bool:false)// NSUnderlineStyleNone
OR
underline = NSNumber(bool:true)// NSUnderlineStyleSingle
然后以这种方式调用它:
let font = ....fontOfSize(18)!
let attrString1 = NSAttributedString(
string: "www.apple.com",
attributes: [ NSFontAttributeName: font
, NSForegroundColorAttributeName: UIColor.whiteColor()
, NSUnderlineStyleAttributeName: underline
]
)