Made the popover detachable
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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)!
|
||||
|
||||
Reference in New Issue
Block a user