我有NSTextField的扩展名,它会闪现背景颜色。我现在需要为NSTextFieldCell做同样的事情。我试图找到一种方法来抽象当前的扩展来处理两者。目前正在使用Copy-> Paste解决方案来满足截止日期,但它复制了250行代码,因此我想将其重构为正确的解决方案。
我看到他们共享的唯一类是NSObject但由于NSObject没有backgroundColor,大多数代码都失败了,我找不到用'where'子句将扩展名约束到我需要的类的方法。如果它适用于任何具有backgroundColor的类,那将没有问题,但我再也看不到如何使用where子句来检查属性或者响应ToToSelector。
我也尝试从NSTextField转换为NSTextFieldCell但是返回错误。 (转换为不相关的类型总是失败)我也得到了相反的错误。
答案 0 :(得分:1)
我也尝试从NSTextField转换为NSTextFieldCell
因为这不是他们的相关方式。关系是NSTextField有一个cell
,它是一个NSTextFieldCell。因此,如果您已经扩展了NSTextFieldCell,那么您已经有效地扩展了NSTextField。