使用Swift将最小/最大图像添加到NSSlider

ixany

我以编程方式创建了一个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)

从本质上讲,它的工作就像一种魅力:

在此处输入图片说明

但是我要实现的结果是,在滑块的左/右边缘上有一个最小/最大图像的滑块,如下所示:

在此处输入图片说明

我如何实现这样的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)

...而且有效!但是,谁能给我一个提示,如何更改subViews的位置?

在此处输入图片说明

罗伊·K

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章