import Foundation
import AppKit
class ExportAccessoryView : NSView {
@IBOutlet weak var typeBox: NSPopUpButton!
var savePanel: NSSavePanel? = nil
func setSavePanel(_ savePanel: NSSavePanel?) {
self.savePanel = savePanel
}
func setPossibleOptions(_ options : Array<String>) {
for option in options {
typeBox.addItem(withTitle: option.uppercased())
@IBAction func changeFileFormat(_ sender: Any) {
savePanel?.allowedFileTypes?.removeAll()
savePanel?.allowedFileTypes?.append((typeBox.titleOfSelectedItem?.lowercased())!)
extension NSView {
class func fromNib<T: NSView>() -> T? {
var topLevelObjects : NSArray?
guard Bundle.main.loadNibNamed("\(self)", owner: nil, topLevelObjects: &topLevelObjects) else {
return nil
return topLevelObjects!.first(where: { $0 is T }) as? T