使用 Swift 添加 min/max 图像到 NSSlider

Adding min/max images to NSSlider using Swift

我以编程方式创建了一个 NSSlider,并在 NSMenuItem 中实现了它:

    let menuVolumeSliderItem = NSMenuItem()
    let menuVolumeSlider = NSSlider()

    menuVolumeSlider.sliderType = NSSliderType.linear
    menuVolumeSlider.isEnabled = true
    menuVolumeSlider.isContinuous = true
    menuVolumeSlider.action = #selector(AppDelegate.doSomething)
    menuVolumeSlider.minValue = 0.0
    menuVolumeSlider.maxValue = 1.0
    menuVolumeSlider.floatValue = 0.5
    menuVolumeSlider.frame.size.width = menu.size.width
    menuVolumeSlider.frame.size.height = 20.0

    menuVolumeSliderItem.view = menuVolumeSlider
    menu.addItem(menuVolumeSliderItem)

从本质上讲,它就像一个魅力:

但我想要实现的结果是在滑块的 left/right 边缘带有 min/max 图像的滑块,如下所示:

如何实现这样的 NSMenuItem?

编辑:

我创建了一个自定义 NSView:

    let view = NSView()
    view.frame.size.width = menu.size.width
    view.frame.size.height = 25.0

...然后创建了一个 NSImage ...

    let img = NSImageView()
    img.frame.size.width = 16.0
    img.frame.size.height = 16.0
    img.image = NSImage(named: "NSStatusAvailable")!

... 并将 menuVolumeSliderimg 添加到我的自定义视图:

    view.addSubview(img)
    view.addSubview(menuVolumeSlider)
    menuVolumeSliderItem.view = view
    menu.addItem(menuVolumeSliderItem)

... 成功了!但是任何人都可以给我提示如何更改子视图的位置吗?

创建一个包含滑块和两个图像的 NSView。然后将 menuVolumeSliderItem.view 设置为那个 NSView.