SettingViewController.swift 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //
  2. // SettingViewController.swift
  3. // KdanAuto
  4. //
  5. // Created by 朱东勇 on 2022/11/21.
  6. //
  7. import Foundation
  8. import AppKit
  9. enum PathType {
  10. case Origin;
  11. case Result;
  12. case Check;
  13. }
  14. public protocol SettingViewControllerDelegate : NSObjectProtocol {
  15. @MainActor func settingViewDidFinished()
  16. }
  17. class SettingViewController : NSViewController, NSTextFieldDelegate, NSWindowDelegate {
  18. static var vc : SettingViewController!
  19. @IBOutlet var window : NSWindow!
  20. public var delegate : SettingViewControllerDelegate!
  21. @IBOutlet var originPathTF : NSTextField!
  22. @IBOutlet var originPathBtn : NSButton!
  23. class func shared() -> SettingViewController {
  24. if vc == nil {
  25. vc = SettingViewController()
  26. Bundle.main.loadNibNamed("SettingViewController", owner: vc, topLevelObjects: nil)
  27. }
  28. return vc
  29. }
  30. override func viewDidLoad() {
  31. }
  32. override func viewWillAppear() {
  33. self.originPathTF.stringValue = DataModel.shared.directoryPath() ;
  34. }
  35. // IBAction
  36. @IBAction func pathSelected(_ sender:NSButton) {
  37. let openPanel = NSOpenPanel()
  38. openPanel.canChooseFiles = false
  39. openPanel.canChooseDirectories = true
  40. if openPanel.runModal() == NSApplication.ModalResponse.OK {
  41. let path = openPanel.directoryURL?.relativePath
  42. DataModel.shared.setDirectoryPath(path!);
  43. self.originPathTF.stringValue = path!;
  44. }
  45. }
  46. // Show
  47. public func show() {
  48. window.setIsVisible(true);
  49. }
  50. //Window Delegate
  51. func windowShouldClose(_ sender: NSWindow) -> Bool {
  52. if delegate != nil {
  53. delegate.settingViewDidFinished()
  54. }
  55. sender.setIsVisible(false);
  56. return false;
  57. }
  58. }