KMMemberPromptWC.swift 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. //
  2. // KMMemberPromptWC.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by wanjun on 2024/11/4.
  6. // 会员提示通用WindowController
  7. //
  8. import Cocoa
  9. @objc enum KMMemberTipType : Int {
  10. case logout = 0 // 验证码
  11. case unsubscribe // 注销账户 存在会员中
  12. case signout // 注销账户
  13. }
  14. class KMMemberPromptWC: NSWindowController {
  15. @IBOutlet weak var titleLabel: NSTextField!
  16. @IBOutlet weak var subTitleLabel: NSTextField!
  17. @IBOutlet weak var cancelButton: NSButton!
  18. @IBOutlet weak var yesButton: NSButton!
  19. private var viewModel = KMUserInfoVCModel()
  20. var tipType: KMMemberTipType = .logout
  21. static let shared: KMMemberPromptWC = {
  22. let windowC = KMMemberPromptWC(windowNibName: "KMMemberPromptWC")
  23. return windowC
  24. }()
  25. override func windowDidLoad() {
  26. super.windowDidLoad()
  27. // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
  28. languageLocalized()
  29. initializeUI()
  30. }
  31. // MARK: Private Method
  32. private func languageLocalized() -> Void {
  33. var title = ""
  34. var subTitle = ""
  35. var cance = ""
  36. var yes = ""
  37. if tipType == .logout {
  38. title = "退出登录"
  39. subTitle = "确定要退出当前账号吗?"
  40. cance = "Cancel"
  41. yes = "Yes"
  42. } else if tipType == .unsubscribe {
  43. title = "提示"
  44. subTitle = "您当前处于会员订阅中,以防下个周期继续扣费,请先在支付平台取消订阅后,再操作注销账户"
  45. yes = "知道了"
  46. } else if tipType == .signout {
  47. title = "警告"
  48. subTitle = "注销账号会永久删除一切账号数据,包括您在此账号下购买的其他端的PDF Reader Pro的权益。您确定要继续吗?"
  49. cance = "Cancel"
  50. yes = "Yes"
  51. }
  52. titleLabel.stringValue = NSLocalizedString(title, tableName: "MemberCenterLocalizable", comment: "")
  53. subTitleLabel.stringValue = NSLocalizedString(subTitle, tableName: "MemberCenterLocalizable", comment: "")
  54. cancelButton.title = NSLocalizedString(cance, tableName: "MemberCenterLocalizable", comment: "")
  55. yesButton.title = NSLocalizedString(yes, tableName: "MemberCenterLocalizable", comment: "")
  56. }
  57. private func initializeUI() -> Void {
  58. if tipType == .logout {
  59. titleLabel.textColor = NSColor(named: "000000_0.85")
  60. titleLabel.font = NSFont.SFProTextSemiboldFont(13)
  61. subTitleLabel.textColor = NSColor(named: "000000_0.85")
  62. subTitleLabel.font = NSFont.SFProTextRegularFont(12)
  63. cancelButton.setTitleColor(color: NSColor(named: "000000") ?? NSColor.white, font: NSFont.SFProTextRegularFont(13))
  64. yesButton.setTitleColor(color: NSColor(named: "FFFFFF") ?? NSColor.white, font: NSFont.SFProTextRegularFont(13))
  65. } else if tipType == .unsubscribe {
  66. titleLabel.textColor = NSColor(named: "000000_0.85")
  67. titleLabel.font = NSFont.SFProTextSemiboldFont(13)
  68. subTitleLabel.textColor = NSColor(named: "000000_0.85")
  69. subTitleLabel.font = NSFont.SFProTextRegularFont(12)
  70. cancelButton.isHidden = true
  71. yesButton.setTitleColor(color: NSColor(named: "FFFFFF") ?? NSColor.white, font: NSFont.SFProTextRegularFont(13))
  72. } else if tipType == .signout {
  73. titleLabel.textColor = NSColor(named: "000000_0.85")
  74. titleLabel.font = NSFont.SFProTextSemiboldFont(13)
  75. subTitleLabel.textColor = NSColor(named: "000000_0.85")
  76. subTitleLabel.font = NSFont.SFProTextRegularFont(12)
  77. cancelButton.setTitleColor(color: NSColor(named: "000000") ?? NSColor.white, font: NSFont.SFProTextRegularFont(13))
  78. yesButton.setTitleColor(color: NSColor(named: "FFFFFF") ?? NSColor.white, font: NSFont.SFProTextRegularFont(13))
  79. }
  80. }
  81. // MARK: Button Action
  82. @IBAction func cancelButtonAction(_ sender: NSButton) {
  83. if tipType == .logout {
  84. self.window?.close()
  85. viewModel.expandPersonalCenter()
  86. } else if tipType == .unsubscribe {
  87. } else if tipType == .signout {
  88. self.window?.close()
  89. }
  90. }
  91. @IBAction func yesButtonAction(_ sender: NSButton) {
  92. if tipType == .logout {
  93. self.window?.close()
  94. viewModel.confirmExitAction()
  95. } else if tipType == .unsubscribe {
  96. self.window?.close()
  97. } else if tipType == .signout {
  98. self.window?.close()
  99. viewModel.closeAccountWarningWC()
  100. }
  101. }
  102. }