// // KMLoginWindowsController.swift // PDF Reader Pro // // Created by wanjun on 2024/10/22. // import Cocoa typealias LoginResultComplete = (_ success: Bool) -> Void @objcMembers class KMLoginWindowsController: NSWindowController { @IBOutlet weak var leftBox: NSBox! @IBOutlet weak var leftImageView: NSImageView! @IBOutlet weak var rightBox: NSBox! var memberInfo: KMMemberInfo = KMMemberInfo.shared var loginResult: LoginResultComplete! static let shared: KMLoginWindowsController = { let windowC = KMLoginWindowsController(windowNibName: "KMLoginWindowsController") return windowC }() 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. // window?.styleMask.insert([.titled, .closable, .miniaturizable, .fullSizeContentView]) // window?.titleVisibility = .visible initializeUI() NotificationCenter.default.addObserver(self, selector: #selector(loginSuccessNotification), name: NSNotification.Name(rawValue: "MemberCenterLoginSuccess"), object: nil) } // MARK: Private Action private func initializeUI() -> Void { if memberInfo.isLogin { window?.close() } else { leftImageView.image = NSImage(named: "WelcomePDFReaderPro1") let signUpView = KMSignUpView() signUpView.frame = rightBox.frame rightBox.contentView = signUpView rightBox.fillColor = NSColor(named: "membercentercolor") ?? NSColor.white } } // MARK: public Action @objc func loginSuccessNotification() -> Void { if let result = loginResult { result(true) } window?.close() } func openWindow(_ complete: @escaping LoginResultComplete) -> Void { KMLoginWindowsController.shared.showWindow(nil) loginResult = complete } }