我创建了一个名为RCTextField
的自定义类,其目的是创建一个带圆角的NSTextField
(因此RC...
)。
此RCTextField
继承自NSTextField
并重写drawRect:
方法,以便创建自己的圆角矩形。
现在,我想对NSSecureTextField
做同样的事情,也就是说,有办法使它具有圆角。我不能只是让它继承RCTextField
,因为那个对.cc>的文本没有任何安全的实现。
如果我继承了NSSecureTextField
,我将不得不重写所有的NSSecureTextField
实现。
我考虑的一个选项是拥有一个名为drawRect:
的静态方法的RCBaseTextField
类,并在drawRect:forNSTextField:withParams:
和drawRect:
的RCTextField
中调用一个。然而,这看起来有点老套,而且感觉在objective-c中可能有更好的oop方法来实现这一点。
那么,在RCSecureTextField
和RCTextField
之间共享RCTextField
中的绘图圆角代码的最佳/sanest/软件工程-“esquest”方法是什么?
最佳答案
不幸的是,您不能使objective-c从其他多个类继承行为。我认为提供一个函数(使用面向对象的语言不阻止在适当的时候使用函数)将被两个调用drawRect:
实现都是比较简单的方法。
或者您可以忽略NSSecureTextField
并使RCSecureTextField
从RCTextField
继承。然后实现类方法cellClass
返回NSSecureTextFieldCell
,并得到与NSSecureTextField
相同的精确特征。
@接口rcsecuretextfield:rctextfield
@结束
实现RCSECURE文本字段
+(类)cellClass{返回[nsSecureTextFieldCell类];}
@结束