0
を使用してNSSliderに最小/最大画像を追加:私はプログラム的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)
そして、本質的に、それは魅力が好きなのを仕事:
しかし、私が達成したい結果は、このようなSliderの左端/右端に最小/最大画像を持つSliderです。
どうすればNSMenuItemを実現できますか?
EDIT:
私はカスタムNSViewの作成した:NSImageではを作成し、その後...
let view = NSView()
view.frame.size.width = menu.size.width
view.frame.size.height = 25.0
を...
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)
...それが機能しました!しかし、誰も私にサブビューの位置を変更するヒントを教えていただけますか?
この方法で再生すると、スライダーだけをビューに追加しても隠れてしまうとどうなりますか?スライダの幅を変えてビューをより良く調整できますか?それを再生し、それがなぜ表示されていないのか理解しようとしますが、これはあなたが取るべきアプローチと方向です。 @yyany –
ヘイロイ、助けてくれてありがとう、本当に感謝します!私は問題を解決することができた。サブビューの位置を変更する方法を私に伝えることができれば嬉しいです。前もって感謝します! – ixany
フレームをスライダに設定し、メニュー項目を基準にしてサイズと原点を設定します。nsview: let menuVolumeSlider = NSSlider.init(フレーム:NSRect(x:positionX、y:位置Y、幅:幅、高さ:高さ)) –