|
@@ -1,456 +0,0 @@
|
|
-//
|
|
|
|
-// KMURLToPDFWindowController.swift
|
|
|
|
-// PDF Master
|
|
|
|
-//
|
|
|
|
-// Created by wanjun on 2023/1/29.
|
|
|
|
-//
|
|
|
|
-
|
|
|
|
-import Cocoa
|
|
|
|
-
|
|
|
|
-class KMURLToPDFWindowController: NSWindowController {
|
|
|
|
-
|
|
|
|
- @IBOutlet weak var title: NSTextField!
|
|
|
|
- @IBOutlet weak var urlView: NSView!
|
|
|
|
- @IBOutlet weak var urlTextFieldBox: NSBox!
|
|
|
|
- @IBOutlet weak var fileView: NSView!
|
|
|
|
- @IBOutlet weak var fileTextFieldBox: NSBox!
|
|
|
|
- @IBOutlet weak var fileButtonBox: NSBox!
|
|
|
|
- @IBOutlet weak var pageConfigurationView: NSView!
|
|
|
|
- @IBOutlet weak var pageConfigurationLabel: NSTextField!
|
|
|
|
- @IBOutlet weak var pageSizeLabel: NSTextField!
|
|
|
|
- @IBOutlet weak var pageSizePopUpButton: KMPopUpButton!
|
|
|
|
- @IBOutlet weak var spacingLanel: NSTextField!
|
|
|
|
- @IBOutlet weak var stepperBox: NSBox!
|
|
|
|
- @IBOutlet weak var mmLabel: NSTextField!
|
|
|
|
- @IBOutlet weak var cancelView: NSView!
|
|
|
|
- @IBOutlet weak var openView: NSView!
|
|
|
|
-
|
|
|
|
- var urlButtonVC: KMDesignButton!
|
|
|
|
- var urlTextfieldVC: KMTextfieldVC!
|
|
|
|
- var fileButtonVC: KMDesignButton!
|
|
|
|
- var fileTextfieldVC: KMTextfieldVC!
|
|
|
|
- var openFileVC: KMDesignButton!
|
|
|
|
- var stepperVC: KMStepperView!
|
|
|
|
- var cancelVC: KMDesignButton!
|
|
|
|
- var openVC: KMDesignButton!
|
|
|
|
-
|
|
|
|
- var filePath: String = ""
|
|
|
|
- var gap: Float = 0.0
|
|
|
|
- var pageSize: CGSize = NSZeroSize
|
|
|
|
-
|
|
|
|
- override func windowDidLoad() {
|
|
|
|
- super.windowDidLoad()
|
|
|
|
-
|
|
|
|
- // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
|
|
|
|
- urlButtonVC = KMDesignButton.init(withType: .RadioButton)
|
|
|
|
- urlTextfieldVC = KMTextfieldVC.init(nibName: "KMTextfieldVC", bundle: nil)
|
|
|
|
- fileButtonVC = KMDesignButton.init(withType: .RadioButton)
|
|
|
|
- fileTextfieldVC = KMTextfieldVC.init(nibName: "KMTextfieldVC", bundle: nil)
|
|
|
|
- openFileVC = KMDesignButton.init(withType: .Image)
|
|
|
|
- stepperVC = KMStepperView.init(nibName: "KMStepperView", bundle: nil)
|
|
|
|
- cancelVC = KMDesignButton.init(withType: .Text)
|
|
|
|
- openVC = KMDesignButton.init(withType: .Text)
|
|
|
|
-
|
|
|
|
- pageSizePopUpButton.removeAllItems()
|
|
|
|
-
|
|
|
|
- self.initializeUI()
|
|
|
|
- self.initLocalization()
|
|
|
|
-
|
|
|
|
- refreshUI()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // MARK: Init
|
|
|
|
-
|
|
|
|
- func initializeUI() {
|
|
|
|
- self.window?.backgroundColor = .white
|
|
|
|
-
|
|
|
|
- title.font = NSFont.boldSystemFont(ofSize: 16.0)
|
|
|
|
- title.textColor = NSColor(red: 37/255.0, green: 41/255.0, blue: 41/255.0, alpha: 1.0)
|
|
|
|
- urlView.addSubview(urlButtonVC.view)
|
|
|
|
- urlButtonVC.image = NSImage(named: "KMRadioButtonUnSelect")!
|
|
|
|
- urlButtonVC.target = self
|
|
|
|
- urlButtonVC.action = #selector(buttonChangeType)
|
|
|
|
- urlButtonVC.state = .Checked
|
|
|
|
-// let itemSpacing = KMDesignToken.shared.itemSpacing(withToken: "checkbox-radio.bg.def")
|
|
|
|
-// urlButtonVC.radio_label = itemSpacing.stringToCGFloat()
|
|
|
|
-// let typography = KMDesignToken.shared.typography(withToken: "checkbox-radio.mac-text.def")
|
|
|
|
-// let fill = KMDesignToken.shared.fill(withToken: "checkbox-radio.mac-text.def")
|
|
|
|
- urlTextFieldBox.contentView = urlTextfieldVC.view
|
|
|
|
- urlTextfieldVC.borderColor = .gray
|
|
|
|
- urlTextfieldVC.borderWidth = 1.0
|
|
|
|
- urlTextfieldVC.cornerRadius = 4.0
|
|
|
|
- urlTextfieldVC.width = 400.0
|
|
|
|
- urlTextfieldVC.height = 32.0
|
|
|
|
- urlTextfieldVC.editable = true
|
|
|
|
- urlTextfieldVC.becomeFirstResponder = true
|
|
|
|
- urlTextfieldVC.delete = self
|
|
|
|
-
|
|
|
|
- fileView.addSubview(fileButtonVC.view)
|
|
|
|
- fileButtonVC.image = NSImage(named: "KMRadioButtonUnSelect")!
|
|
|
|
- fileButtonVC.target = self
|
|
|
|
- fileButtonVC.action = #selector(buttonChangeType)
|
|
|
|
-
|
|
|
|
- fileTextFieldBox.contentView = fileTextfieldVC.view
|
|
|
|
- fileTextfieldVC.borderColor = .gray
|
|
|
|
- fileTextfieldVC.borderWidth = 1.0
|
|
|
|
- fileTextfieldVC.cornerRadius = 4.0
|
|
|
|
- fileTextfieldVC.width = 360.0
|
|
|
|
- fileTextfieldVC.height = 32.0
|
|
|
|
- fileTextfieldVC.editable = false
|
|
|
|
- fileTextfieldVC.delete = self
|
|
|
|
-
|
|
|
|
- fileButtonBox.contentView = openFileVC.view
|
|
|
|
- openFileVC.image = NSImage(named: "KMFileIcon")!
|
|
|
|
- openFileVC.borderColor = .gray
|
|
|
|
- openFileVC.borderWidth = 1.0
|
|
|
|
- openFileVC.cornerRadius = 4.0
|
|
|
|
- openFileVC.width = 32.0
|
|
|
|
- openFileVC.height = 32.0
|
|
|
|
- openFileVC.target = self
|
|
|
|
- openFileVC.action = #selector(selectFileAction)
|
|
|
|
- openFileVC.enabled = false
|
|
|
|
-
|
|
|
|
- stepperBox.contentView = stepperVC.view
|
|
|
|
- stepperVC.borderColor = .gray
|
|
|
|
- stepperVC.borderWidth = 1.0
|
|
|
|
- stepperVC.cornerRadius = 4.0
|
|
|
|
- stepperVC.width = 72.0
|
|
|
|
- stepperVC.height = 32.0
|
|
|
|
- stepperVC.delete = self
|
|
|
|
- stepperVC.enabled = false
|
|
|
|
-
|
|
|
|
- cancelView.addSubview(cancelVC.view)
|
|
|
|
- cancelVC.borderColor = .gray
|
|
|
|
- cancelVC.borderWidth = 1.0
|
|
|
|
- cancelVC.cornerRadius = 4.0
|
|
|
|
- cancelVC.width = 80.0
|
|
|
|
- cancelVC.height = 32.0
|
|
|
|
- cancelVC.textColor = .black
|
|
|
|
- cancelVC.target = self
|
|
|
|
- cancelVC.action = #selector(cancelAction)
|
|
|
|
-
|
|
|
|
- openView.addSubview(openVC.view)
|
|
|
|
- openVC.borderColor = .gray
|
|
|
|
- openVC.borderWidth = 1.0
|
|
|
|
- openVC.cornerRadius = 4.0
|
|
|
|
- openVC.width = 80.0
|
|
|
|
- openVC.height = 32.0
|
|
|
|
- openVC.background = NSColor(red: 23/255.0, green: 112/255.0, blue: 244/255.0, alpha: 1.0)
|
|
|
|
- openVC.textColor = .white
|
|
|
|
- openVC.target = self
|
|
|
|
- openVC.action = #selector(startAction)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- func initLocalization() {
|
|
|
|
- title.stringValue = NSLocalizedString("New From Web Page", comment: "")
|
|
|
|
- urlButtonVC.stringValue = NSLocalizedString("URL", comment: "")
|
|
|
|
- urlTextfieldVC.placeholderString = NSLocalizedString("https://pdfreaderpro.com", comment: "")
|
|
|
|
- fileButtonVC.stringValue = NSLocalizedString("File", comment: "")
|
|
|
|
- fileTextfieldVC.placeholderString = NSLocalizedString("Select Files(.html,.webarchive)", comment: "")
|
|
|
|
- pageConfigurationLabel.stringValue = NSLocalizedString("Page Configuration", comment: "")
|
|
|
|
- pageSizeLabel.stringValue = NSLocalizedString("Page Size:", comment: "")
|
|
|
|
- spacingLanel.stringValue = NSLocalizedString("Spacing:", comment: "")
|
|
|
|
- mmLabel.stringValue = NSLocalizedString("mm:", comment: "")
|
|
|
|
- cancelVC.stringValue = NSLocalizedString("Cancel", comment: "")
|
|
|
|
- openVC.stringValue = NSLocalizedString("Open", comment: "")
|
|
|
|
-
|
|
|
|
- pageSizePopUpButton.addItems(withTitles: [NSLocalizedString("Automatic resizing", comment: ""),
|
|
|
|
- "4A0 1682 × 2378 mm",
|
|
|
|
- "2A0 1189 × 1682 mm",
|
|
|
|
- "A0 841 × 1189 mm",
|
|
|
|
- "A1 594 × 841 mm",
|
|
|
|
- "A2 420 × 594 mm",
|
|
|
|
- "A3 297 × 420 mm",
|
|
|
|
- "A4 210 × 297 mm",
|
|
|
|
- "A5 148 × 210 mm",
|
|
|
|
- "A6 105 × 148 mm",
|
|
|
|
- "A7 74 × 105 mm",
|
|
|
|
- "A8 52 × 74 mm",
|
|
|
|
- "A9 37 × 52 mm",
|
|
|
|
- "A10 26 × 37 mm"])
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- func refreshUI() -> Void {
|
|
|
|
- urlButtonVC.updateUI()
|
|
|
|
- urlTextfieldVC.updateUI()
|
|
|
|
- fileButtonVC.updateUI()
|
|
|
|
- fileTextfieldVC.updateUI()
|
|
|
|
- openFileVC.updateUI()
|
|
|
|
- stepperVC.updateUI()
|
|
|
|
- cancelVC.updateUI()
|
|
|
|
- openVC.updateUI()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // MARK: Private Methods
|
|
|
|
-
|
|
|
|
- func kUrlToPDFFolderPath() -> String {
|
|
|
|
-// let searchPath = NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true).last
|
|
|
|
-// let append2 = searchPath!.stringByAppendingPathComponent("WebPage")
|
|
|
|
- let append1: NSString = "WebPage"
|
|
|
|
- let append2 = append1.kUrlToPDFFolderPath()
|
|
|
|
- return append2 as String
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @objc func beginSheetModal(for window: NSWindow, completionHandler handler: ((_ filePath: String) -> Void)?) {
|
|
|
|
- window.beginSheet(self.window!) { [weak self] returnCode in
|
|
|
|
- if self != nil {
|
|
|
|
- handler!(self!.filePath)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- func formatFloat(_ f: Float) -> String {
|
|
|
|
- if (fmodf(f, 1) == 0) { //如果有一位小数点
|
|
|
|
- return String(format: "%.0f",f)
|
|
|
|
- } else if (fmodf(f*10, 1) == 0) { //如果有两位小数点
|
|
|
|
- return String(format: "%.1f",f)
|
|
|
|
- } else {
|
|
|
|
- return String(format: "%.2f",f)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // MARK: Action
|
|
|
|
-
|
|
|
|
- @objc func buttonChangeType(_ sender: NSButton) -> Void {
|
|
|
|
- if (sender == urlButtonVC.button) {
|
|
|
|
- if urlButtonVC.state == .Norm {
|
|
|
|
- urlButtonVC.image = NSImage(named: "KMRadioButtonSelect")!
|
|
|
|
- urlButtonVC.state = .Checked
|
|
|
|
- fileButtonVC.image = NSImage(named: "KMRadioButtonUnSelect")!
|
|
|
|
- fileButtonVC.state = .Norm
|
|
|
|
- urlTextfieldVC.editable = true
|
|
|
|
- urlTextfieldVC.becomeFirstResponder = true
|
|
|
|
- fileTextfieldVC.stringValue = ""
|
|
|
|
- openFileVC.enabled = false
|
|
|
|
- if urlTextfieldVC.stringValue.count > 0 {
|
|
|
|
-// openVC.enabled = true
|
|
|
|
- } else {
|
|
|
|
-// openVC.enabled = false
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- } else if (sender == fileButtonVC.button) {
|
|
|
|
- if fileButtonVC.state == .Norm {
|
|
|
|
- urlButtonVC.image = NSImage(named: "KMRadioButtonUnSelect")!
|
|
|
|
- urlButtonVC.state = .Norm
|
|
|
|
- fileButtonVC.image = NSImage(named: "KMRadioButtonSelect")!
|
|
|
|
- fileButtonVC.state = .Checked
|
|
|
|
- urlTextfieldVC.editable = false
|
|
|
|
- urlTextfieldVC.stringValue = ""
|
|
|
|
- openFileVC.enabled = true
|
|
|
|
-
|
|
|
|
- if fileTextfieldVC.stringValue.count > 0 {
|
|
|
|
-// openVC.enabled = true
|
|
|
|
- } else {
|
|
|
|
-// openVC.enabled = false
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- refreshUI()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @objc func selectFileAction(_ sender: NSButton) -> Void {
|
|
|
|
- urlButtonVC.state = .Norm
|
|
|
|
- fileButtonVC.state = .Checked
|
|
|
|
- urlTextfieldVC.editable = false
|
|
|
|
- urlTextfieldVC.stringValue = ""
|
|
|
|
-// openVC.enabled = false
|
|
|
|
-
|
|
|
|
- let openPanel = NSOpenPanel()
|
|
|
|
- openPanel.canChooseFiles = true
|
|
|
|
- openPanel.canChooseDirectories = false
|
|
|
|
- openPanel.allowsMultipleSelection = false
|
|
|
|
- openPanel.allowedFileTypes = ["HTML","html","webarchive","htm"]
|
|
|
|
- openPanel.beginSheetModal(for: self.window!) { [self] response in
|
|
|
|
- if response == .OK {
|
|
|
|
- fileTextfieldVC.stringValue = openPanel.url!.path
|
|
|
|
-// openVC.enabled = true
|
|
|
|
- refreshUI()
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @objc func cancelAction(_ sender: NSButton) -> Void {
|
|
|
|
- if (sender == cancelVC.button) {
|
|
|
|
- NSApp.mainWindow!.endSheet(self.window!)
|
|
|
|
- self.window?.orderOut(self)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @objc func startAction(_ sender: NSButton) -> Void {
|
|
|
|
- if (sender == openVC.button) {
|
|
|
|
- if FileManager.default.fileExists(atPath: kUrlToPDFFolderPath()) {
|
|
|
|
- try? FileManager.default.createDirectory(atPath: kUrlToPDFFolderPath(), withIntermediateDirectories: false)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- var url: URL
|
|
|
|
- var fileName: String = ""
|
|
|
|
- if urlButtonVC.state == .Checked {
|
|
|
|
- let urlstring = urlTextfieldVC.stringValue
|
|
|
|
- var tUrl = URL(string: urlstring)
|
|
|
|
- if tUrl?.scheme == nil {
|
|
|
|
- tUrl = URL(string: String(format: "http://%@", urlstring))
|
|
|
|
- }
|
|
|
|
- url = tUrl!
|
|
|
|
- } else {
|
|
|
|
- url = URL(fileURLWithPath: fileTextfieldVC.stringValue)
|
|
|
|
- fileName = fileTextfieldVC.stringValue.lastPathComponent.deletingPathExtension.lastPathComponent
|
|
|
|
- }
|
|
|
|
- var string = stepperVC.text
|
|
|
|
- let unitScanle: Float = (595.0/21.0) * 2.54
|
|
|
|
- if Float(string)! <= 0 {
|
|
|
|
- stepperVC.text = "0"
|
|
|
|
- string = "0"
|
|
|
|
- } else if Float(string)! * unitScanle > Float(pageSize.width)/2 {
|
|
|
|
- let maxF = pageSize.width/(string.stringToCGFloat() * 2)
|
|
|
|
- stepperVC.text = String(format: "%f",maxF)
|
|
|
|
- string = String(format: "%f",maxF)
|
|
|
|
- }
|
|
|
|
- gap = Float(formatFloat(Float(string.stringToCGFloat()) * unitScanle))!
|
|
|
|
-
|
|
|
|
-// if url != nil {
|
|
|
|
-// let convert = KMConvertURLToPDF.shareInstance()
|
|
|
|
-// convert.fileName = fileName
|
|
|
|
-// convert.convertUrl(toPDF: [url], toPath: kUrlToPDFFolderPath(), pageSize: pageSize, gap: CGFloat(gap)) { value in
|
|
|
|
-//
|
|
|
|
-// } completionHandler: { successArray, failArray in
|
|
|
|
-// if failArray.count < 1 {
|
|
|
|
-// let filePath: String = successArray.first as! String
|
|
|
|
-// if FileManager.default.fileExists(atPath: filePath) {
|
|
|
|
-// self.filePath = filePath
|
|
|
|
-// NSApp.mainWindow!.endSheet(self.window!)
|
|
|
|
-// self.window?.orderOut(self)
|
|
|
|
-// }
|
|
|
|
-// } else {
|
|
|
|
-// let alert = NSAlert()
|
|
|
|
-// alert.alertStyle = .critical
|
|
|
|
-// alert.informativeText = NSLocalizedString("Conversion Failed", comment: "")
|
|
|
|
-// alert.messageText = NSLocalizedString("", comment: "")
|
|
|
|
-// alert.addButton(withTitle: NSLocalizedString("OK", comment: ""))
|
|
|
|
-// alert.runModal()
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @IBAction func comboBoxItemClick_PageSize(_ sender: KMPopUpButton) {
|
|
|
|
- switch pageSizePopUpButton.indexOfSelectedItem {
|
|
|
|
- case 0:
|
|
|
|
- pageSize = CGSize(width: 0, height: 0)
|
|
|
|
- break
|
|
|
|
- case 1:
|
|
|
|
- pageSize = CGSize(width: 4760, height: 6736)
|
|
|
|
- break
|
|
|
|
- case 2:
|
|
|
|
- pageSize = CGSize(width: 3368, height: 4760)
|
|
|
|
- break
|
|
|
|
- case 3:
|
|
|
|
- pageSize = CGSize(width: 2380, height: 3368)
|
|
|
|
- break
|
|
|
|
- case 4:
|
|
|
|
- pageSize = CGSize(width: 1684, height: 2380)
|
|
|
|
- break
|
|
|
|
- case 5:
|
|
|
|
- pageSize = CGSize(width: 1190, height: 1684)
|
|
|
|
- break
|
|
|
|
- case 6:
|
|
|
|
- pageSize = CGSize(width: 842, height: 1190)
|
|
|
|
- break
|
|
|
|
- case 7:
|
|
|
|
- pageSize = CGSize(width: 595, height: 842)
|
|
|
|
- break
|
|
|
|
- case 8:
|
|
|
|
- pageSize = CGSize(width: 420, height: 595)
|
|
|
|
- break
|
|
|
|
- case 9:
|
|
|
|
- pageSize = CGSize(width: 298, height: 420)
|
|
|
|
- break
|
|
|
|
- default:
|
|
|
|
- pageSize = CGSize(width: 210, height: 298)
|
|
|
|
- break
|
|
|
|
- }
|
|
|
|
- if (pageSizePopUpButton.indexOfSelectedItem != 0) {
|
|
|
|
- stepperVC.text = "0"
|
|
|
|
- stepperVC.enabled = true
|
|
|
|
- } else {
|
|
|
|
- stepperVC.text = "0"
|
|
|
|
- stepperVC.enabled = false
|
|
|
|
- }
|
|
|
|
- refreshUI()
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-extension KMURLToPDFWindowController: KMStepperViewDelegate {
|
|
|
|
- func km_controlTextDidEndEditing(_ obj: KMStepperView) {
|
|
|
|
- if obj == stepperVC {
|
|
|
|
- var string: String = obj.text
|
|
|
|
- let unitScanle: Float = (595.0/21.0) * 2.54
|
|
|
|
- if (string.stringToCGFloat() <= 0) {
|
|
|
|
- stepperVC.text = "0"
|
|
|
|
- string = "0"
|
|
|
|
- } else if (Float(string.stringToCGFloat()) * unitScanle > Float(pageSize.width)/2) {
|
|
|
|
- let maxF = pageSize.width / (string.stringToCGFloat() * 2)
|
|
|
|
- stepperVC.text = String(format: "%f",maxF)
|
|
|
|
- string = String(format: "%f",maxF)
|
|
|
|
- }
|
|
|
|
- gap = Float(formatFloat(Float(string.stringToCGFloat()) * unitScanle))!
|
|
|
|
- refreshUI()
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- func km_controlTextDidChange(_ obj: KMStepperView) {
|
|
|
|
- if obj == stepperVC {
|
|
|
|
- if (urlButtonVC.state == .Checked) {
|
|
|
|
- if (urlTextfieldVC.stringValue.count > 0) {
|
|
|
|
-// openVC.enabled = true
|
|
|
|
- } else {
|
|
|
|
-// openVC.enabled = false
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- if (fileTextfieldVC.stringValue.count > 0) {
|
|
|
|
-// openVC.enabled = true
|
|
|
|
- } else {
|
|
|
|
-// openVC.enabled = false
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- refreshUI()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- func km_controlClick(_ obj: KMStepperView) {
|
|
|
|
- if (obj.text.stringToCGFloat() < 0) {
|
|
|
|
- stepperVC.text = "0"
|
|
|
|
- }
|
|
|
|
- let unitScanle = (595.0/21.0) * 2.54
|
|
|
|
- let formatter = formatFloat(Float(obj.text.stringToCGFloat() * unitScanle))
|
|
|
|
- gap = Float(formatter)!
|
|
|
|
-
|
|
|
|
- refreshUI()
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-extension KMURLToPDFWindowController: KMTextfieldVCDelegate {
|
|
|
|
- func km_controlTextDidEndEditing(_ obj: KMTextfieldVC) {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- func km_controlTextDidChange(_ obj: KMTextfieldVC) {
|
|
|
|
- if urlButtonVC.state == .Checked {
|
|
|
|
- if urlTextfieldVC.stringValue.count > 0 {
|
|
|
|
- openVC.enabled = true
|
|
|
|
- refreshUI()
|
|
|
|
- } else {
|
|
|
|
- openVC.enabled = false
|
|
|
|
- refreshUI()
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- if fileTextfieldVC.stringValue.count > 0 {
|
|
|
|
- openVC.enabled = true
|
|
|
|
- refreshUI()
|
|
|
|
- } else {
|
|
|
|
- openVC.enabled = false
|
|
|
|
- refreshUI()
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|