我有一个NSTextField
,我想要一个符号总是出现在最左边,文本字段的内容从它的右边开始。例如,您可以想象一个带有美元符号($)的文本字段,其前缀为最左侧。可以在它上面添加一个标签,然后将NSTextFieldCell
子类添加到左边填充,我已经完成了,但是我需要在不同的位置重复使用这个文本字段,所以我更喜欢直接绘制符号如果可能,在NSTextFieldCell
子类中。我注意到drawWithFrame:inView:
方法,应该放置此绘图代码的位置?如果是这样,如何在该框架中正确绘制标签?
答案 0 :(得分:1)
你可以在drawWithFrame中进行绘图:inView :.绘图后,在调用“[super drawWithFrame]”之前修改rect。 喜欢
-(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];
}