2016-08-02 9 views
-5

Ich habe ein kleines Problem mit der App und suche nach der besten Lösung. Ich möchte ein Popup-Fenster erstellen, das separate Logik in anderen NSViewController hat.Popup-Fenster in OS X App

Der Fall ist - ich klicke auf die Schaltfläche in meinem Fenster und dann erscheint ein anderes Fenster mit einigen NSTextFields und benutzerdefinierten Design. Ich überlege, welche Komponente für mein Problem am besten ist.

etwas wie folgt aus:

my view

Danke für jede Hilfe im Voraus!

+0

'NSPanel' oder ein anderes Fenster erstellen? Haben Sie den [Programmierungsleitfaden für Fenster] (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/WinPanel/Introduction.html#//apple_ref/doc/uid/10000031i) gelesen? – Abizern

+0

Sie könnten einfach die Schaltfläche verknüpfen, die das Fenster zu einem Viewcontroller öffnen soll, indem Sie die Maus von der Schaltfläche zum Viewcontroller ziehen. – Eric

Antwort

1

Wenn haben Sie es mit dem folgenden Code getan:

let addMyPopover = NSPopover() 

if let popOverController = aViewController(xyz: data) { 
      popOverController.closeDelegate = self 
      addMyPopover.behavior = .Transient 
      addMyPopover.contentViewController = popOverController 
      addMyPopover.contentSize = CGSizeMake(450, 380) 
      addMyPopover.showRelativeToRect(addButton.bounds, ofView: addPhaseButton, preferredEdge: NSRectEdge.MinY) 
     } 

extension MyController: closeViewDelegate { 
    func closePopover(sender: AnyObject?) { 
     addMyPopover.performClose(sender) 
    } 
} 

protocol closeViewDelegate: class { 
    func closePopover(sender: AnyObject?) 
} 

aViewController ist vom Typ NSViewController

+0

Es ist nicht genau das, was ich brauche (siehe Screenshot) –

+0

Ich denke, das ist der Weg, den Apple vorschlägt zu verwenden: https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/OSXHIGuidelines/ControlsView.html#// Apple_ref/doc/uid/20000957-CH52-SW1 –