1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
silica-viewer/SilicaViewer/ExportAccessoryView.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
}
}