// // KMConvertPPTsSettingView.swift // PDF Master // // Created by tangchao on 2022/12/6. // import Cocoa class KMConvertPPTsSettingView: KMConvertSettingView, NibLoadable { @IBOutlet weak var ocrBox: NSBox! @IBOutlet weak var pageRangeBox: NSBox! static var nibName: String? { return "KMConvertBaseWindowController" } static func createFromNib(in bundle: Bundle = Bundle.main) -> Self? { guard let nibName = nibName else { return nil } var topLevelArray: NSArray? = nil bundle.loadNibNamed(NSNib.Name(nibName), owner: nil, topLevelObjects: &topLevelArray) guard let results = topLevelArray else { return nil } let views = Array(results).filter { $0 is Self } return views.last as? Self } override func viewDidMoveToWindow() { super.viewDidMoveToWindow() let ocrItemView = KMConvertOCRSettingItemView.createFromNib() ocrItemView?.frame = ocrBox.contentView!.bounds ocrItemView?.autoresizingMask = NSView.AutoresizingMask(rawValue: 18) // ocrBox.contentView = ocrItemView ocrItemView?.languageIndex = ocrLanuguageIndex ocrItemView?.lanugageDidSelected = { [unowned self] (index: Int) -> () in guard let callback = lanugageDidSelected else { return } callback(index) } let pageRangeItemView = KMConvertPageRangeSettingItemView.createFromNib() pageRangeItemView?.frame = pageRangeBox.contentView!.bounds pageRangeItemView?.autoresizingMask = NSView.AutoresizingMask(rawValue: 18) pageRangeBox.contentView = pageRangeItemView self.pageRangeItemView = pageRangeItemView pageRangeItemView?.isTextDidEndCallback = true pageRangeItemView?.pageCount = self.pageCount pageRangeItemView?.itemClick = { [unowned self] index, _ in pageRangeSelectedIndex = index guard let callback = self.pageRangeDidChange else { return } callback(KMPageRange(rawValue: index)!) } pageRangeItemView?.textDidEndEditingCallback = { [unowned self] textString in let pageRange = KMPageRange(rawValue: self.pageRangeSelectedIndex) if (pageRange != .custom) { return } guard let callback = pageRangeDidInputFinishCallback else { return } callback(textString) } } override func getPageRangeString() -> String { if let view = self.pageRangeItemView { return view.pageRangeValue } return "" } }