KMBookCellView.swift 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. //
  2. // KMBookCellView.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by lxy on 2022/11/14.
  6. //
  7. import Cocoa
  8. class KMBookCellView: NSTableCellView {
  9. @IBOutlet weak var bookTitle: NSTextField!
  10. @IBOutlet weak var iconIv: NSImageView!
  11. @IBOutlet weak var inputBox: NSBox!
  12. @IBOutlet weak var inputTF: KMTextField!
  13. @IBOutlet weak var dateLabel: NSTextField!
  14. var textFieldDidEndEditingCallback: ((NSTextField)->Void)?
  15. override func awakeFromNib() {
  16. super.awakeFromNib()
  17. bookTitle.isHidden = true
  18. bookTitle.font = NSFont.SFProTextRegularFont(13.0)
  19. bookTitle.textColor = KMAppearance.titleColor()
  20. dateLabel.font = NSFont.SFProTextRegularFont(12)
  21. dateLabel.textColor = NSColor.km_init(hex: "#757780")
  22. inputTF.isBordered = false
  23. inputTF.drawsBackground = false
  24. inputTF.delegate = self
  25. inputBox.cornerRadius = 0
  26. inputTF.isHighlighted = false
  27. inputTF.isEditable = false
  28. inputTF.isSelectable = false
  29. inputTF.firstResponderHandler = { [weak self] firstResp in
  30. if firstResp {
  31. DispatchQueue.main.async {
  32. self?.inputBox.borderWidth = 1
  33. self?.inputBox.borderColor = NSColor.km_init(hex: "#4982E6")
  34. if KMAppearance.isDarkMode() {
  35. self?.inputBox.fillColor = .black
  36. } else {
  37. self?.inputBox.fillColor = .white
  38. }
  39. }
  40. }
  41. }
  42. }
  43. override func draw(_ dirtyRect: NSRect) {
  44. super.draw(dirtyRect)
  45. }
  46. }
  47. extension KMBookCellView: NSTextFieldDelegate {
  48. func controlTextDidEndEditing(_ obj: Notification) {
  49. if self.inputTF.isEqual(to: obj.object) {
  50. self.inputBox.borderWidth = 0
  51. self.inputBox.fillColor = .clear
  52. self.textFieldDidEndEditingCallback?(self.inputTF)
  53. }
  54. }
  55. }