可可绘图可点击文字

时间:2011-06-27 19:57:29

标签: objective-c cocoa text drawing clickable

我正在尝试绘制一些可点击的文字。 我试图不使用NSButton,因为我的文本是在drawRect中绘制的,并且在drawRect中使用NSButton使得它在自身之上添加子视图,除非你在每次调用drawRect时删除所有子视图。

我尝试创建一个NSButton而不是将其添加为子视图我调用[myBtn.cell drawTitle:withFrame:inView:]绘制文本,但它不可点击。

有没有办法绘制文字(以类似于使用drawInRect的方式),但我可以在哪里点击文字?

如果没有,你会推荐什么?使用标准NSButton并每次清除所有子视图?

1 个答案:

答案 0 :(得分:1)

我之前看到过的一种方法是使用NSAttributedString。可点击的部分应以某种方式更改(即,使用不同的NSForegroundColorAttributeNameNSUnderlineStyleAttributeName),然后使用NSURLNSLinkAttributeName附加到其中。

如果我没记错的话,我相信这是一个NSTextField子类,可以做到这一点:DSClickableURLTextField

我建议自己绘制文本,因为AppKit中有很多东西会为你做这件事。你为什么需要亲自画画?