El Capitan + Yosemite , addSaveOptionsAccessoryViewToSavePanel, addSaveOptionsToView +
var saveOptions = IKSaveOptions()
var imageUTType = kUTTypeTIFF
var imageProperties: NSDictionary = Dictionary<String, String>()
var panel : NSSavePanel?
internal func prepareExportSavePanel(savePanel : NSSavePanel) -> Bool {
panel = savePanel
saveOptions = IKSaveOptions(imageProperties: imageProperties , imageUTType: imageUTType)
saveOptions.delegate = self
if #available(macOS 10.14, *) { //might work on earlier versions
saveOptions.addAccessoryView(to: savePanel)
} else {
savePanel.accessoryView = NSView(frame: NSRect(x: 0, y: 0, width: 500, height: 200))
saveOptions.add(to: savePanel.accessoryView)
}
return true
}
override func saveOptions(saveOptions: IKSaveOptions!, shouldShowUTType utType: String!) -> Bool {
if (utType == "com.ilm.openexr-image") {
return false
}
return true
}
@objc dynamic func saveOptionsChanged(_ sender: Any?) {
imageProperties = saveOptions.imageProperties
imageUTType = saveOptions.imageUTType
panel?.allowedFileTypes = [imageUTType as String]
}
@objc dynamic open var canCalculateEstimatedSize : Bool {
return false
}