子类NSTextField在用户输入后生成内存警告

时间:2015-07-09 15:21:51

标签: objective-c macos malloc nstextfield

我已经实现了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

我的猜测是我的子类实现没有正确处理,但我老实说不确定。有人有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:1)

你应该致电

about_path

[super awakeFromNib]; 方法中。

来自docs

  

您必须调用awakeFromNib的超级实现来提供父级   对他们进行任何额外初始化的机会进行分类   要求。虽然这个方法的默认实现确实如此   没有,许多UIKit类提供非空实现。你可以   在你自己的任何时候调用超级实现   awakeFromNib方法。