使用 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")!
... 并将 menuVolumeSlider
和 img
添加到我的自定义视图:
view.addSubview(img)
view.addSubview(menuVolumeSlider)
menuVolumeSliderItem.view = view
menu.addItem(menuVolumeSliderItem)
... 成功了!但是任何人都可以给我提示如何更改子视图的位置吗?
创建一个包含滑块和两个图像的 NSView。然后将 menuVolumeSliderItem.view 设置为那个 NSView.
我以编程方式创建了一个 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")!
... 并将 menuVolumeSlider
和 img
添加到我的自定义视图:
view.addSubview(img)
view.addSubview(menuVolumeSlider)
menuVolumeSliderItem.view = view
menu.addItem(menuVolumeSliderItem)
... 成功了!但是任何人都可以给我提示如何更改子视图的位置吗?
创建一个包含滑块和两个图像的 NSView。然后将 menuVolumeSliderItem.view 设置为那个 NSView.