我正在尝试绘制一些可点击的文字。 我试图不使用NSButton,因为我的文本是在drawRect中绘制的,并且在drawRect中使用NSButton使得它在自身之上添加子视图,除非你在每次调用drawRect时删除所有子视图。
我尝试创建一个NSButton而不是将其添加为子视图我调用[myBtn.cell drawTitle:withFrame:inView:]绘制文本,但它不可点击。
有没有办法绘制文字(以类似于使用drawInRect的方式),但我可以在哪里点击文字?
如果没有,你会推荐什么?使用标准NSButton并每次清除所有子视图?
答案 0 :(得分:1)
我之前看到过的一种方法是使用NSAttributedString
。可点击的部分应以某种方式更改(即,使用不同的NSForegroundColorAttributeName
和NSUnderlineStyleAttributeName
),然后使用NSURL
将NSLinkAttributeName
附加到其中。
如果我没记错的话,我相信这是一个NSTextField
子类,可以做到这一点:DSClickableURLTextField
我建议不自己绘制文本,因为AppKit中有很多东西会为你做这件事。你为什么需要亲自画画?