CustomToolTip 是一个用于 macOS Cocoa 应用程序的 Swift 包,它允许你添加工具提示,这些工具提示可以使用任何类型的 NSView
作为其内容,而无需子类化或包装你现有的视图。 这意味着它可以很容易地集成到现有项目中。
CustomToolTip 在 NSView
上提供了一个扩展,该扩展处理其余的事情。 你可以专注于创建你的工具提示内容,并使用扩展添加到 NSView
的 customToolTip
属性将其附加到你的视图。
你不需要对任何东西进行子类化。 你不需要将视图嵌套在特殊的工具提示视图中。 你甚至不需要更改故事板中的任何内容。
在你想要添加自定义工具提示的源文件中,
import CustomToolTip
然后,添加工具提示就像这样简单
myControl.customToolTip = myCustomTipContentView
其中 myControl
是你想要附加自定义工具提示的视图,而 myCustomTipContentView
是你想要用作工具提示内容的任何 NSView
。
你的工具提示视图的唯一技术要求是,在添加它之前,它的 frame size 应该被正确设置,因为工具提示将根据你的内容视图的 frame 调整其大小。
你的工具提示内容有一些设计上的考虑,但这些很大程度上取决于品味、你的应用程序的外观和感觉,以及当前对良好设计的思考。 我唯一要提出的建议是,保持你的工具提示相对较小,并避免在其中使用任何看起来用户应该与之交互的视图,因为……它是一个工具提示。 当用户移动鼠标时,它会消失。
你可以指定自定义工具提示内容视图和工具提示窗口框架之间的边距
myControl.customToolTipMargins = CGSize(width: 5, height: 5)
默认情况下,CustomToolTip 使用当前系统窗口背景颜色作为工具提示的背景,但你可以使用任何你喜欢的颜色
myControl.customToolTipBackgroundColor = NSColor.blue
你还可以设置在你不为每个视图指定它们时使用的默认值
CustomToolTip.defaultMargins = CGSize(width: 2, height: 2)
CustomToolTip.defaultBackColor = .controlColor
对于一些特别常见的情况,CustomToolTip 提供了便利方法,这些方法会为你创建视图。
如果你只想使用特定字体添加文本工具提示,你可以这样做
myControl.addCustomToolTip(from: "This is my tool tip", with: NSFont(name: "Chalkboard", size: 20))
如果你有一个 NSAttributedString
你想在工具提示中显示,你可以使用它
myControl.addCustomToolTip(from: myAttributedString)
要使用 NSImage
作为内容
myControl.addCustomToolTip(from: myToolTipImage, scaling: .toFit(width: 50, height: 50))