34 lines
949 B
Swift
34 lines
949 B
Swift
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
|
|
}
|
|
}
|