2016-10-06 3 views
1

에 수평 슬라이더를 배치하는 방법 :볼륨 메뉴 막대 항목이 시스템의 볼륨을 변경하는 수평 슬라이더 항목을 제공하는 맥 OS 시에라 현재 NSMenu (스위프트 3, 엑스 코드 8)

macOS Sierra volume menu

내가 좋아하는 것 내 자신의 응용 프로그램에 대한이 개념을 채택하고 다음 클래스를 내놓았다합니다 :

import Cocoa 

@NSApplicationMain 
class AppDelegate: NSObject, NSApplicationDelegate { 

    @IBOutlet weak var window: NSWindow! 
    let statusItem = NSStatusBar.system().statusItem(withLength: -2) 

    func applicationDidFinishLaunching(_ aNotification: Notification) { 

     let menu = NSMenu() 
     let menuItem = NSMenuItem() 
     let statusSlider = NSSlider() 

     menu.addItem(NSMenuItem(title: "Slider:", action: nil, keyEquivalent: "")) 

     menuItem.title = "Slider 1" 
     menuItem.view = statusSlider 
     menu.addItem(menuItem) 

     menu.addItem(NSMenuItem.separator()) 

     menu.addItem(NSMenuItem(title: "Quit", action: Selector("terminate:"), keyEquivalent: "q")) 

     statusItem.image = NSImage(named: "NSStatusAvailable") 
     statusItem.menu = menu 
    } 
} 

을하지만 메뉴에 표시 참고 슬라이더가 없습니다. 내가 뭘 잘못했는지 아무도 모른다.

enter image description here

답변

5

NSSlider 초기 프레임 크기는 0이다. 크기를 메뉴 항목에 추가하기 전에 크기를 설정해야합니다.

statusSlider.setFrameSize(NSSize(width: 160, height: 16)) 
+0

대단히 감사합니다. – Zahlex

+0

프레임 크기를 지정한 후 마침내 메뉴에서 NSColorWell을 얻을 수있었습니다. – samael