ASRectPropertyCell.swift 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. //
  2. // ASIntPropertyCell.swift
  3. // KdanAuto
  4. //
  5. // Created by 朱东勇 on 2023/4/17.
  6. //
  7. import Cocoa
  8. class ASRectPropertyCell: ASPropertyCell, NSTextFieldDelegate {
  9. @IBOutlet var m_titleLbl:NSTextField!
  10. @IBOutlet var m_xTF:NSTextField!
  11. @IBOutlet var m_yTF:NSTextField!
  12. @IBOutlet var m_wTF:NSTextField!
  13. @IBOutlet var m_hTF:NSTextField!
  14. override class func shared() -> ASPropertyCell? {
  15. var objects : NSArray!
  16. Bundle.main.loadNibNamed("ASRectPropertyCell", owner: nil, topLevelObjects: &objects)
  17. for tView in objects {
  18. if let tv = tView as? ASRectPropertyCell {
  19. return tv
  20. }
  21. }
  22. return nil
  23. }
  24. /// Setter
  25. override func setPropertyInfo(_ info:NSDictionary) {
  26. super.setPropertyInfo(info)
  27. self.m_titleLbl.stringValue = "\(info.value(forKey: "Name") ?? ""):"
  28. setValue((info.value(forKey: "DefaultValue") ?? "0") as AnyObject)
  29. }
  30. override func setValue(_ value:AnyObject) {
  31. super.setValue(value)
  32. if (value as? String) != nil {
  33. let rectString = value as! String
  34. let rect = NSRectFromString(rectString);
  35. self.m_xTF.stringValue = "\(rect.origin.x)";
  36. self.m_yTF.stringValue = "\(rect.origin.y)";
  37. self.m_wTF.stringValue = "\(rect.size.width)";
  38. self.m_hTF.stringValue = "\(rect.size.height)";
  39. }
  40. }
  41. override func value() -> AnyObject {
  42. let rect = CGRectMake(CGFloat(NSString(string: self.m_xTF.stringValue).floatValue),
  43. CGFloat(NSString(string: self.m_yTF.stringValue).floatValue),
  44. CGFloat(NSString(string: self.m_wTF.stringValue).floatValue),
  45. CGFloat(NSString(string: self.m_hTF.stringValue).floatValue))
  46. return NSStringFromRect(rect) as AnyObject
  47. }
  48. override func setEnabled(_ enabled:Bool) {
  49. super.setEnabled(enabled)
  50. self.alphaValue = enabled ? 1 : 0.6
  51. self.m_xTF.isEnabled = enabled;
  52. self.m_yTF.isEnabled = enabled;
  53. self.m_wTF.isEnabled = enabled;
  54. self.m_hTF.isEnabled = enabled;
  55. }
  56. }