我有一个NSTextField
,我希望一个符号总是出现在最左边,文本字段的内容从它的右边开始。例如,你可以想象一个在最左边前缀为美元符号($)的文本字段。可以在上面添加一个标签,然后子类NSTextFieldCell
来添加左填充,我已经这样做了,但我需要在不同的位置重用这个文本字段,所以如果可能的话,我更喜欢直接在NSTextFieldCell
子类中绘制符号。我注意到了drawWithFrame:inView:
方法,这就是这个绘图代码应该放在哪里?如果是这样,如何在该框架中正确地绘制标签?
您可以在drawWithFrame:inView:中绘制。绘图后,在调用"[super-drawWithFrame]"之前修改矩形。像
-(void)drawWithFrame:(NSRect)rect inView:(NSView*)view
{
NSString *str = @"$";
NSRect someRect;//string draw rect
[str drawInRect:someRect withAttributes:nil];
rect.origin.x += someRect.size.width;
rect.size.width -= someRect.size.width;
[super drawWithFrame:rect inView:view];
}