AlertControllerVC.swift 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. //
  2. // AlertControllerVC.swift
  3. // PDF Reader Pro Edition
  4. //
  5. // Created by Niehaoyu on 2024/9/11.
  6. //
  7. import Cocoa
  8. import KMComponentLibrary
  9. class AlertControllerVC: NSViewController {
  10. @IBOutlet weak var leftBox: NSBox!
  11. @IBOutlet weak var alertItem: ComponentAlert!
  12. @IBOutlet weak var typeBox: NSComboBox!
  13. @IBOutlet weak var showTitleBtn: NSButton!
  14. @IBOutlet weak var showCancelBtn: NSButton!
  15. @IBOutlet weak var titleField: NSTextField!
  16. @IBOutlet weak var subTitleField: NSTextField!
  17. @IBOutlet weak var tagItem: ComponentTag!
  18. @IBOutlet weak var tagSizeBox: NSComboBox!
  19. @IBOutlet weak var tagTextField: NSTextField!
  20. @IBOutlet weak var tagRoundItem: ComponentTagRound!
  21. @IBOutlet weak var tagRoundSecondaryBtn: NSButton!
  22. @IBOutlet weak var tagRoundWidthConst: NSLayoutConstraint!
  23. @IBOutlet weak var tagWidthConst: NSLayoutConstraint!
  24. @IBOutlet weak var tagHeightConst: NSLayoutConstraint!
  25. override func viewDidLoad() {
  26. super.viewDidLoad()
  27. // Do view setup here.
  28. self.typeBox.selectItem(at: 0)
  29. self.reloadData()
  30. }
  31. override func viewDidLayout() {
  32. super.viewDidLayout()
  33. NotificationCenter.default.addObserver(self, selector: #selector(textFieldDidBeginEditingNotification(_:)), name: NSControl.textDidBeginEditingNotification, object: titleField)
  34. NotificationCenter.default.addObserver(self, selector: #selector(textFieldDidChangeNotification(_:)), name: NSControl.textDidChangeNotification, object: titleField)
  35. NotificationCenter.default.addObserver(self, selector: #selector(textFieldDidEndEditingNotification(_:)), name: NSControl.textDidEndEditingNotification, object: titleField)
  36. NotificationCenter.default.addObserver(self, selector: #selector(textFieldDidBeginEditingNotification(_:)), name: NSControl.textDidBeginEditingNotification, object: subTitleField)
  37. NotificationCenter.default.addObserver(self, selector: #selector(textFieldDidChangeNotification(_:)), name: NSControl.textDidChangeNotification, object: subTitleField)
  38. NotificationCenter.default.addObserver(self, selector: #selector(textFieldDidEndEditingNotification(_:)), name: NSControl.textDidEndEditingNotification, object: subTitleField)
  39. NotificationCenter.default.addObserver(self, selector: #selector(textFieldDidBeginEditingNotification(_:)), name: NSControl.textDidBeginEditingNotification, object: tagTextField)
  40. NotificationCenter.default.addObserver(self, selector: #selector(textFieldDidChangeNotification(_:)), name: NSControl.textDidChangeNotification, object: tagTextField)
  41. NotificationCenter.default.addObserver(self, selector: #selector(textFieldDidEndEditingNotification(_:)), name: NSControl.textDidEndEditingNotification, object: tagTextField)
  42. }
  43. func reloadData() {
  44. let type: ComponentMessageType = ComponentMessageType(rawValue: self.typeBox.indexOfSelectedItem)!
  45. var title: String = ""
  46. if self.showTitleBtn.state == .on {
  47. title = self.titleField.stringValue
  48. }
  49. let subTitle: String = self.subTitleField.stringValue
  50. let detailBtnString: String = "Detail"
  51. var cancelBtnString: String = ""
  52. if self.showCancelBtn.state == .on {
  53. cancelBtnString = "Cancel"
  54. }
  55. let property = ComponentAlertProperty(messageType: type, title: title, subTitle: subTitle, detailButtonString: detailBtnString, cancelButtonString: cancelBtnString)
  56. self.alertItem.properties = property
  57. self.alertItem.showInView(self.leftBox.contentView)
  58. var tagSize: ComponentSize = .m
  59. if self.tagSizeBox.indexOfSelectedItem == 1 {
  60. tagSize = .s
  61. }
  62. let tagText: String = self.tagTextField.stringValue
  63. let tagProperty = ComponentTagProperty(size: tagSize, state: .normal, text: tagText)
  64. self.tagItem.properties = tagProperty
  65. self.tagWidthConst.constant = self.tagItem.properties.propertyInfo.viewWidth
  66. self.tagHeightConst.constant = self.tagItem.properties.propertyInfo.viewHeight
  67. let tagRoundProperty = ComponentTagRoundProperty(secondary: self.tagRoundSecondaryBtn.state == .on,
  68. text: "Text")
  69. self.tagRoundItem.properties = tagRoundProperty
  70. self.tagRoundWidthConst.constant = self.tagRoundItem.properties.propertyInfo.viewWidth
  71. }
  72. @IBAction func clickAction(_ sender: Any) {
  73. self.reloadData()
  74. }
  75. //MARK: - TextNotification
  76. @objc func textFieldDidBeginEditingNotification(_ notification: Notification) {
  77. }
  78. @objc func textFieldDidChangeNotification(_ notification: Notification) {
  79. self.reloadData()
  80. }
  81. @objc func textFieldDidEndEditingNotification(_ notification: Notification) {
  82. print("textFieldDidEndEditingNotification")
  83. self.reloadData()
  84. }
  85. }