KMLoginWindowsController.swift 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //
  2. // KMLoginWindowsController.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by wanjun on 2024/10/22.
  6. //
  7. import Cocoa
  8. typealias LoginResultComplete = (_ success: Bool) -> Void
  9. @objcMembers
  10. class KMLoginWindowsController: NSWindowController {
  11. @IBOutlet weak var leftBox: NSBox!
  12. @IBOutlet weak var leftImageView: NSImageView!
  13. @IBOutlet weak var rightBox: NSBox!
  14. var memberInfo: KMMemberInfo = KMMemberInfo.shared
  15. var loginResult: LoginResultComplete!
  16. static let shared: KMLoginWindowsController = {
  17. let windowC = KMLoginWindowsController(windowNibName: "KMLoginWindowsController")
  18. return windowC
  19. }()
  20. override func windowDidLoad() {
  21. super.windowDidLoad()
  22. // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
  23. // window?.styleMask.insert([.titled, .closable, .miniaturizable, .fullSizeContentView])
  24. // window?.titleVisibility = .visible
  25. initializeUI()
  26. NotificationCenter.default.addObserver(self, selector: #selector(loginSuccessNotification), name: NSNotification.Name(rawValue: "MemberCenterLoginSuccess"), object: nil)
  27. }
  28. // MARK: Private Action
  29. private func initializeUI() -> Void {
  30. if memberInfo.isLogin {
  31. window?.close()
  32. } else {
  33. leftImageView.image = NSImage(named: "WelcomePDFReaderPro1")
  34. let signUpView = KMSignUpView()
  35. signUpView.frame = rightBox.frame
  36. rightBox.contentView = signUpView
  37. rightBox.fillColor = NSColor(named: "membercentercolor") ?? NSColor.white
  38. }
  39. }
  40. // MARK: public Action
  41. @objc func loginSuccessNotification() -> Void {
  42. if let result = loginResult {
  43. result(true)
  44. }
  45. window?.close()
  46. }
  47. func openWindow(_ complete: @escaping LoginResultComplete) -> Void {
  48. KMLoginWindowsController.shared.showWindow(nil)
  49. loginResult = complete
  50. }
  51. }