// // KMConvertImageSettingView.swift // PDF Master // // Created by tangchao on 2022/12/6. // class KMConvertImageSettingView: KMConvertSettingView { @IBOutlet weak var fileTypeTitleLabel: NSTextField! @IBOutlet weak var formatComboBox: NSComboBox! @IBOutlet weak var resolutionComboBox: NSComboBox! @IBOutlet weak var formatBox: NSBox! @IBOutlet weak var pageRangeBox: NSBox! @IBOutlet weak var topBoxHeightConst: NSLayoutConstraint! @IBOutlet weak var dpiTitleLabel: NSTextField! @IBOutlet weak var dpiSelectBox: NSBox! private var formartView: KMDesignSelect? private var dpiVC: KMDesignSelect? var selectedFormatIndex = 0 var selectedResolutionIndex = 3 override func awakeFromNib() { super.awakeFromNib() self.fileTypeTitleLabel.stringValue = NSLocalizedString("Format", comment: "") self.fileTypeTitleLabel.textColor = NSColor(hex: "#616469") self.fileTypeTitleLabel.font = .SFProTextSemibold(12) self.formartView = KMDesignSelect.init(withType: .Combox) self.formatBox.fillColor = .clear self.formatBox.contentView = self.formartView!.view self.formartView?.removeAllItems() self.formartView?.addItems(withObjectValues: ["JPEG","JPG","PNG","GIF","TIFF","TGA","BMP","JPEG-2000"]) self.formartView?.selectItem(at: 0) self.formartView?.editable = false //默认属性,初始化可不设置 self.formartView?.delete = self self.formartView?.updateUI() self.dpiTitleLabel.stringValue = NSLocalizedString("Resolution", comment: "") self.dpiTitleLabel.textColor = NSColor(hex: "#616469") self.dpiTitleLabel.font = .SFProTextBold(12) self.dpiVC = KMDesignSelect(withType: .Combox) self.dpiSelectBox.contentView = self.dpiVC?.view self.dpiVC?.removeAllItems() self.dpiVC?.addItems(withObjectValues: ["50 dpi", "72 dpi", "96 dpi", "150 dpi", "300 dpi", "600 dpi"]) self.dpiVC?.selectItem(at: self.selectedResolutionIndex) self.dpiVC?.delete = self self.dpiVC?.updateUI() self.topBoxHeightConst.constant = 80 self.resolutionComboBox.isHidden = true } override func viewDidMoveToWindow() { super.viewDidMoveToWindow() if (self.pageRangeItemView == nil) { let viwe = KMConvertPageRangeSettingItemView.createFromNib() self.pageRangeBox.contentView = viwe self.pageRangeItemView = viwe viwe?.itemClick = { [unowned self] index, _ in pageRangeSelectedIndex = index guard let callback = self.pageRangeDidChange else { return } callback(KMPageRange(rawValue: index)!) } viwe?.textDidEndEditingCallback = { [unowned self] textString in let pageRange = KMPageRange(rawValue: self.pageRangeSelectedIndex) if (pageRange != .custom) { return } guard let callback = pageRangeDidInputFinishCallback else { return } callback(textString) } } self.pageRangeItemView?.isTextDidEndCallback = true self.pageRangeItemView?.pageCount = self.pageCount } override func getPageRangeString() -> String { if let view = self.pageRangeItemView { return view.pageRangeValue } return "" } } extension KMConvertImageSettingView: KMSelectPopButtonDelegate { func km_comboBoxSelectionDidChange(_ obj: KMDesignSelect) { if (obj.isEqual(to: self.formartView)) { if formartView!.indexOfSelectedItem < 0 { selectedFormatIndex = 0 } else { selectedFormatIndex = formartView!.indexOfSelectedItem } } else if (obj.isEqual(to: self.dpiVC)) { if let index = self.dpiVC?.indexOfSelectedItem { self.selectedResolutionIndex = max(index, 0) } } } }