在NSTextField中绘制固定符号

时间:2015-03-20 17:43:58

标签: objective-c macos cocoa nstextfield nstextfieldcell

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

1 个答案:

答案 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];

}