如何在 cocoa (OS X) 中以编程方式制作自定义工具提示?

How can i make a programmatically custom tooltip in cocoa (OS X)?

我需要为项目的所有视图创建一个自定义工具提示视图。此工具提示视图具有特定的形状(五边形)、字体、字体颜色和背景颜色。当鼠标进入和鼠标退出视图时,它也应该有一个典型的延迟,就像系统工具提示一样。哪种方法最好?

感谢您的回答

I need to make a custom tooltip view for all views of my project.

所有 观看次数?大多数应用程序都有很多用户甚至都不知道的视图——视图用于包含控件组等。因此,为每个视图提供工具提示会很奇怪。工具提示通常与实际 某事的界面组件一起使用,它们的目的是告诉用户那是什么。这就是为什么您会看到 NSControl 有管理工具提示的方法,但 NSView 没有。

Which is the best way for do this?

首先,确定您是否真的想要每个视图的工具提示,或者您实际上只是想要 Cocoa 已经提供的相同类型的工具提示,但绘制方式不同。如果是后者,那么您可以子类化您使用的每种类型的控件并覆盖 draw(withExpansionFrame:in:) 以绘制您想要的那种工具提示。

如果你真的想要每个视图的工具提示,你最好实现自己的系统。一种方法可能是在您的应用程序中添加一些对象 monitor mouse moved events。您可以启动一个计时器来跟踪每个鼠标移动事件后经过的时间,每个新事件都会使旧计时器无效并启动一个新计时器。如果计时器超时,它可以在鼠标附近的 window 添加一个显示您的五边形 "tool tip" 视图的视图。