将可点击的 URL 添加到我的 Cocoa 视图 - 我做错了吗?
我需要在我的视图中动态设置可点击 URL 的文本和值。
我已经使用 NSTextView
工作了,但是设置字体似乎非常复杂,而且我不知道如何使文本居中:
NSMutableAttributedString* attrString = [[NSMutableAttributedString alloc] initWithString:@"Click me"
attributes:[[NSDictionary alloc] initWithObjectsAndKeys:[NSFont fontWithName:@"Lucida Grande" size:14], NSFontAttributeName, nil]];
[attrString beginEditing];
[attrString addAttribute:NSLinkAttributeName value:@"http://example.com" range:NSMakeRange(0, [attrString length])];
[attrString endEditing];
[[self.downloadLinkTextField textStorage] setAttributedString:attrString];
- 我做错了吗?我在 URL 对象库中找不到任何内容。
- 是否可以将链接居中对齐?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你做对了。 Apple 有一个关于此的方便的文章,其中提供了
NSAttributedString
上的 >Hyperlink 类别,如果您愿意的话可以使用。它们的类别还对链接文本进行了强调和着色。至于居中,这是视图的功能,而不是文本本身的功能。您可以使用
-[NSTextalignCenter:]
(NSText
是NSTextView
),在使用setSelectedRange:
,或者如果您希望视图中的所有文本都居中,只需使用:You've done it correctly. Apple has a handy writeup about this which provides a
Hyperlink
category onNSAttributedString
that you can use if you're so inclined. Their category also underlines and colorizes the link text.As for centering, that's a function of the view, and not the text itself. You can use
-[NSText alignCenter:]
(NSText
is the superclass ofNSTextView
), after you have selected your string usingsetSelectedRange:
, or if you want all the text in the view to be centered, just use:该线程中缺少一些非常重要的东西:
在属性字符串的开始/结束编辑之后和
在设置属性字符串之前...
您需要在文本字段上调用以下内容,否则链接将不起作用:
我从 这里
glhf!
-埃里克
There is something very important missing in this thread:
after begin/end editing of the attributed string and
before setting the attributed string...
you need to call the following on your textfield or the link will not work:
I received this information from here
glhf!
-eric