在 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];

}