1

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

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

有没有办法绘制文本(以使用 drawInRect 的方式)但我也可以让文本可点击?

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

4

1 回答 1

1

我以前见过的一种方法是使用NSAttributedString. 应该以某种方式更改可点击的部分(即,具有不同的NSForegroundColorAttributeNameand NSUnderlineStyleAttributeName),然后NSURL使用NSLinkAttributeName.

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

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

于 2011-06-27T20:12:12.480 回答