123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- //
- // KMLoginWindowController.swift
- // PDF Office
- //
- // Created by lizhe on 2023/2/22.
- //
- import Cocoa
- class KMLoginWindowController: NSWindowController {
- @IBOutlet weak var loginView: KMLoginView!
- @IBOutlet weak var leftView: KMLoginLeftImageView!
- @IBOutlet weak var registerView: KMRegisterView!
- @IBOutlet weak var verificationCodeView: KMVerificationCodeView!
-
- @IBOutlet weak var loginInputPasswordView: KMLoginInputPasswordView!
- @IBOutlet weak var registerSuccessView: KMRegisterSuccessView!
-
- @IBOutlet weak var resetPasswordView: KMResetPasswordView!
-
- @IBOutlet weak var rightContentView: NSView!
-
- var inputType: DataNavigationViewButtonActionType?
-
- var model: KMRegisterModel = KMRegisterModel()
-
- var currentView: NSView?
- var logType: KMRegisterLogType = .login {
- didSet {
- self.reloadData()
- }
- }
- deinit {
- print("KMLoginWindowController 释放")
- }
-
- 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.
- self.setup()
- }
-
- //MARK: 打开文件
- static func show(window: NSWindow, _ type: DataNavigationViewButtonActionType = .Batch) -> KMLoginWindowController {
- let controller: KMLoginWindowController = KMLoginWindowController.init(windowNibName: "KMLoginWindowController")
- controller.inputType = type
- window.beginSheet(controller.window!)
- return controller
- }
-
- override func mouseDown(with event: NSEvent) {
- super.mouseDown(with: event)
- self.window?.makeFirstResponder(self)
- }
-
- func setup() {
- self.window?.contentView?.backgroundColor(NSColor(hex: "#FFFFFF"))
- self.leftView.cancelAction = { view in
- view.window!.close()
- }
-
- //loginView
- self.loginView.registerAction = { [unowned self] (view, data) in
- self.logType = .register
- }
- self.loginView.nextAction = { [unowned self] (view, data) in
- self.model.email = data.email
- self.logType = .loginInputPassword
- }
-
- //registerView
- self.registerView.loginAction = { [unowned self] (view, data) in
- self.logType = .login
- }
- self.registerView.nextAction = { [unowned self] (view, data) in
- self.logType = .verificationCode
- self.verificationCodeView.inputType = .register
- }
-
- self.registerSuccessView.doneAction = { view in
- view.window!.close()
- print("注册成功")
- }
-
- //verificationCodeView
- self.verificationCodeView.cancelAction = { view in
- self.logType = .register
- }
-
- self.verificationCodeView.doneAction = { view in
- self.logType = .registerSuccess
- }
-
-
- //loginInputPasswordView
- self.loginInputPasswordView.loginAction = { view in
- view.window!.close()
- }
-
- self.loginInputPasswordView.forgotPasswordAction = { view in
- self.logType = .resetPassword
- }
-
- self.loginInputPasswordView.changeEmailAction = { view in
- self.logType = .login
- }
-
- //resetPasswordView
- self.resetPasswordView.doneAction = { [unowned self] (view, data) in
- self.model.email = data.email
- self.logType = .login
- }
-
- self.reloadData()
- }
-
- func reloadData() {
- for view in self.rightContentView.subviews {
- view.isHidden = true
- }
-
- switch self.logType {
- case .login:
- self.loginView.isHidden = false
- self.loginView.model.email = self.model.email
- self.window?.makeFirstResponder(self.loginView.emailTextField)
- case .register:
- self.registerView.isHidden = false
- self.window?.makeFirstResponder(self.registerView.emailTextField)
- case .resetPassword:
- self.resetPasswordView.resetData()
- self.resetPasswordView.email = self.model.email
- self.resetPasswordView.isHidden = false
- case .verificationCode:
- self.verificationCodeView.isHidden = false
- self.window?.makeFirstResponder(self.verificationCodeView.code1TextField.textField)
- case .registerSuccess:
- self.registerSuccessView.isHidden = false
- case .loginInputPassword:
- self.loginInputPasswordView.email = self.model.email
- self.loginInputPasswordView.isHidden = false
- }
- }
-
- }
|