0

我有一个NSTextField,我希望一个符号总是出现在最左边,文本字段的内容从它的右边开始。例如,您可以想象一个文本字段在最左侧带有一个美元符号 ($) 前缀。可以在它上面添加一个标签,然后子类NSTextFieldCell添加左填充,我已经完成了,但是我需要在不同的位置重用这个文本字段,所以如果可能的话,我宁愿直接在NSTextFieldCell子类中绘制符号。我注意到了这个drawWithFrame:inView:方法,这个绘图代码应该放在哪里?如果是这样,如何在该框架中正确绘制标签?

4

1 回答 1

1

您可以在 drawWithFrame:inView: 内进行绘图。在你的绘图修改矩形之前调用“[super drawWithFrame].like

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

}
于 2015-03-20T20:09:10.483 回答