Made the popover detachable

This commit is contained in:
Lukas Kubanek
2014-10-25 19:11:31 +02:00
parent e2da704678
commit a886c4e0c8
2 changed files with 19 additions and 7 deletions
+7 -6
View File
@@ -15,12 +15,13 @@ class CustomizablePopoverSegue: NSStoryboardSegue {
var preferredEdge: NSRectEdge = NSMinXEdge
var appearance: NSAppearance? {
get {
return popover.appearance
}
set {
popover.appearance = newValue
}
get { return popover.appearance }
set { popover.appearance = newValue }
}
var popoverDelegate: NSPopoverDelegate? {
get { return popover.delegate }
set { popover.delegate = newValue }
}
private let popover = NSPopover()
+12 -1
View File
@@ -8,11 +8,13 @@
import AppKit
class MainViewController: NSViewController {
class MainViewController: NSViewController, NSPopoverDelegate {
@IBOutlet weak var appearanceSelection: NSMatrix!
@IBOutlet weak var positionSelection: NSMatrix!
// MARK: - Storyboard Segue
override func prepareForSegue(segue: NSStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "DetachablePopover" {
let popoverSegue = segue as CustomizablePopoverSegue
@@ -21,9 +23,18 @@ class MainViewController: NSViewController {
popoverSegue.positioningView = button
popoverSegue.appearance = appearanceForSelectedRadioButton(appearanceSelection.selectedRow)
popoverSegue.preferredEdge = preferredEdgeForSelectedRadioButton(positionSelection.selectedRow)
popoverSegue.popoverDelegate = self
}
}
// MARK: - Popover Delegate
func popoverShouldDetach(popover: NSPopover) -> Bool {
return true
}
// MARK: - Helper Methods
private func appearanceForSelectedRadioButton(radioButton: Int) -> NSAppearance {
switch radioButton {
case 0: return NSAppearance(named: NSAppearanceNameAqua)!