在 NSTextField 中绘制固定符号
Drawing fixed symbol inside NSTextField
我有一个 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];
}
我有一个 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];
}