2015-06-01 39 views
0

如何在Xcode中直觀地設計NSView?我試圖建立一個狀態的應用程序與狀態菜單僅可可 - 編輯/設計可視化的NSView

Menu Custom View

正如你可以在上面看到,該對象出現,但我不能直觀地編輯它,然後它再這樣下去的結果:

Result using Storyboard only

我試圖使用XIB文件(只有一個的NSView,不視圖控制器),但我不能把一個NSView在XIB到AppDelegate中。我嘗試了另一種方法,並設法使用XIB文件,但後來我無法使用Storyboard。

你對這種情況有什麼想法嗎?

UPDATE

感謝Max回答我的問題。我其實曾嘗試過但失敗。我在你的評論後再次嘗試,並且仍然沒有運氣。這是我如何做 Tried

我創建了一個視圖控制器,然後我改變它的MenuCustomView(的NSView)查看 這是在AppDelegate中

let statusBar = NSStatusBar.systemStatusBar().statusItemWithLength(-1) 
var menuCustomView = NSView() 

func applicationDidFinishLaunching(aNotification: NSNotification) { 
    // Insert code here to initialize your application 
    let statusIcon = NSImage(named: "statusIcon") 
    let statusMenu = NSMenu() 
    statusBar.image = statusIcon 
    statusBar.menu = statusMenu 

    let menuItem = NSMenuItem() 
    menuItem.title = "title" 
    var vc = ViewController() 
    menuCustomView = vc.view 
    menuItem.view = menuCustomView 
    statusMenu.addItem(menuItem) 

} 

文件中的代碼我在項目

Files I have

+0

如果您只有一個視圖,爲什麼需要故事板? – mangerlahn

+0

我可能有其他人在進一步發展,我不想被限制。我更喜歡Storyboard,它很整潔。所以如果有什麼方法可以使用Storyboard作爲主界面設計工具,那會更好。 – BlueS

+0

好吧,我會發佈一個答案 – mangerlahn

回答

1

即使您不需要視圖控制器,也可以使用它們來設計視圖。在故事板中創建一個,以您想要的方式編輯視圖。

然後你就可以出故事板的創建的viewController,並使用其觀點,財產使用該視圖的視圖連接到NSStatusBarItem

我的話代碼:

let storyboard = NSStoryboard(name: "Main", bundle: nil) 
    let viewController = storyboard?.instantiateControllerWithIdentifier("MyViewController") as! NSViewController 
    let view = viewController.view 

我想,你希望爲視圖添加功能性代碼。例如,要響應按鈕點擊,您必須繼承NSViewController的子類,然後實現您將添加到AppDelegate的代碼。

如果您需要更多解釋,請隨時寫信給我:

+0

你需要一些代碼嗎? – mangerlahn

+0

我在嘗試(再次)與您的想法後更新了問題。還是行不通。請幫助我更多。非常感謝 – BlueS

+0

編輯我的答案,希望我能幫助你! – mangerlahn