// // KMConvertSettingView.swift // PDF Master // // Created by tangchao on 2023/5/9. // let kKMConvertLanugageSelectedIndex: String = "KMConvertLanugageSelectedIndex" typealias KMConvertSettingViewPageRangeDidChangeCallback = (_ pageRange: KMPageRange) -> Void typealias KMConvertSettingViewPageRangeDidInputFinishCallback = (_ pageRangeString: String) -> () // 转档 设置视图 基类 class KMConvertSettingView: KMConvertBaseView { private var _currentLanguage: String? var currentLanguage: String? { get { return self._currentLanguage } set { self._currentLanguage = newValue if let indexString = UserDefaults.standard.string(forKey: kKMConvertLanugageSelectedIndex), let index = Int(indexString) { self.ocrLanuguageIndex = index return } if let result = newValue?.hasPrefix("zh-Hans"), result { ocrLanuguageIndex = 0 } else if let result = newValue?.hasPrefix("en"), result { ocrLanuguageIndex = 2 } else if let result = newValue?.hasPrefix("zh-Hant"), result { ocrLanuguageIndex = 1 } else if let result = newValue?.hasPrefix("fr"), result { ocrLanuguageIndex = 3 } else if let result = newValue?.hasPrefix("de"), result { ocrLanuguageIndex = 4 } else if let result = newValue?.hasPrefix("ht"), result { /// 海地克里奥尔语 Haitian ocrLanuguageIndex = 5 } else if let result = newValue?.hasPrefix("ja"), result { ocrLanuguageIndex = 6 } else if let result = newValue?.hasPrefix("ko"), result { ocrLanuguageIndex = 7 } else if let result = newValue?.hasPrefix("la"), result { /// 拉丁语 Latin ocrLanuguageIndex = 8 } else { ocrLanuguageIndex = 2 } } } var ocrLanuguageIndex: Int = 3 var pageRangeSelectedIndex: Int = 0 var pageRangeDidChange: KMConvertSettingViewPageRangeDidChangeCallback? var pageRangeDidInputFinishCallback: KMConvertSettingViewPageRangeDidInputFinishCallback? var lanugageDidSelected: KMValueDidChangeBlock? private var _ocrItemView: KMConvertOCRSettingItemView? var ocrItemView: KMConvertOCRSettingItemView? { get { return self._ocrItemView } set { if (self._ocrItemView != newValue) { self._ocrItemView = newValue newValue?.lanugageDidSelected = { [unowned self] value, change in guard let callback = self.lanugageDidSelected else { return } callback(value, change) } } } } private var _pageRangeItemView: KMConvertPageRangeSettingItemView? var pageRangeItemView: KMConvertPageRangeSettingItemView? { get { return self._pageRangeItemView } set { if (self._pageRangeItemView != newValue) { self._pageRangeItemView = newValue newValue?.isTextDidEndCallback = true newValue?.itemClick = { [unowned self] index, _ in self.pageRangeSelectedIndex = index guard let callback = self.pageRangeDidChange else { return } callback(KMPageRange(rawValue: index)!) } newValue?.textDidEndEditingCallback = { [unowned self] textString in let pageRange = KMPageRange(rawValue: self.pageRangeSelectedIndex) if (pageRange != .custom) { return } guard let callback = self.pageRangeDidInputFinishCallback else { return } callback(textString) } } } } var pageCount = 0 { didSet { self.pageRangeItemView?.pageCount = self.pageCount } } var ocrEnabled: Bool { get { guard let state = self.ocrItemView?.checkVC?.state else { return false } return state == .Checked } } func getPageRangeString() -> String { if let view = self.pageRangeItemView { return view.pageRangeValue } return "" } }