KMUserFbEmailItemView.swift 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. //
  2. // KMUserFbEmailItemView.swift
  3. // PDF Reader Pro Edition
  4. //
  5. // Created by tangchao on 2024/7/11.
  6. //
  7. import Cocoa
  8. class KMUserFbEmailItemView: NSView, NibLoadable {
  9. @IBOutlet weak var titleLabel: NSTextField!
  10. @IBOutlet weak var box: NSBox!
  11. @IBOutlet weak var textfiled: KMTextField!
  12. @IBOutlet weak var tipLabel: NSTextField!
  13. override func awakeFromNib() {
  14. super.awakeFromNib()
  15. let title = NSLocalizedString("Email", comment: "")
  16. let attri = NSMutableAttributedString(string: title)
  17. attri.addAttribute(.font, value: NSFont.systemFont(ofSize: 13), range: NSMakeRange(0, title.count))
  18. attri.append(.init(string: "*", attributes: [NSAttributedString.Key.font : NSFont.systemFont(ofSize: 13), NSAttributedString.Key.foregroundColor : NSColor(red: 250/255.0, green: 31/255.0, blue: 93/255.0, alpha: 1.0)]))
  19. self.titleLabel.attributedStringValue = attri
  20. self.box.borderWidth = 0
  21. // self.box.borderColor = NSColor(white: 0, alpha: 0.2)
  22. // self.box.fillColor = .white
  23. self.textfiled.drawsBackground = false
  24. // self.textfiled.isBordered = false
  25. // self.textfiled.focusRingType = .none
  26. self.textfiled.placeholderString = NSLocalizedString("Your email", comment: "")
  27. self.textfiled.delegate = self
  28. self.textfiled.wantsLayer = true
  29. self.textfiled.layer?.cornerRadius = 4
  30. self.textfiled.layer?.masksToBounds = true
  31. // self.textfiled.firstResponderHandler = { [weak self] result in
  32. // self?.box.borderColor = NSColor(red: 140/255.0, green: 131/255.0, blue: 1.0, alpha: 1.0)
  33. // }
  34. self.tipLabel.textColor = NSColor.km_init(hex: "#FA1E5D")
  35. self.tipLabel.font = NSFont(name: "SFProText-Regular", size: 11)
  36. self.tipLabel.isHidden = true
  37. }
  38. func string() -> String {
  39. return self.textfiled.stringValue
  40. }
  41. func showTip(label: String) {
  42. self.window?.makeFirstResponder(self.textfiled)
  43. self.box.horLightShakeAnimation()
  44. self.tipLabel.stringValue = label
  45. self.tipLabel.isHidden = false
  46. }
  47. func hiddenTip() {
  48. self.tipLabel.isHidden = true
  49. }
  50. }
  51. extension KMUserFbEmailItemView: NSTextFieldDelegate {
  52. func control(_ control: NSControl, textShouldBeginEditing fieldEditor: NSText) -> Bool {
  53. return true
  54. }
  55. func controlTextDidBeginEditing(_ obj: Notification) {
  56. }
  57. func controlTextDidChange(_ obj: Notification) {
  58. if self.textfiled.isEqual(to: obj.object) {
  59. self.hiddenTip()
  60. }
  61. }
  62. }