我已经实现了NSTextField
的子类版本,我称之为CustomTextField
,其代码如下:
@interface CustomTextField : NSTextField
@property (nonatomic, strong) IBInspectable NSImage *backgroundImage;
@end
@implementation CustomTextField
- (void)awakeFromNib
{
[self setDrawsBackground:NO];
}
- (void)drawRect:(NSRect)rect
{
NSImage *backgroundImage = self.backgroundImage;
[backgroundImage drawInRect:rect fromRect:rect operation:NSCompositeSourceOver fraction:1.0];
[super drawRect:rect];
}
@end
我有三个自定义文本字段的实例,我已经在我的XIB文件中设置了它。当我运行应用程序时,选择一个文本字段,键入一些文本,然后点击“输入”,我从Xcode获得以下输出:
malloc: protecting edges
malloc: enabling scribbling to detect mods to free blocks
malloc: nano zone does not support guard pages
malloc: purgeable zone does not support guard pages
我的猜测是我的子类实现没有正确处理,但我老实说不确定。有人有什么建议吗?谢谢!
答案 0 :(得分:1)
你应该致电
about_path
在[super awakeFromNib];
方法中。
来自docs:
您必须调用awakeFromNib的超级实现来提供父级 对他们进行任何额外初始化的机会进行分类 要求。虽然这个方法的默认实现确实如此 没有,许多UIKit类提供非空实现。你可以 在你自己的任何时候调用超级实现 awakeFromNib方法。