原理:首先在一个NSView、NSButton或者NSTextField中画一个矩形框出来,然后设置一个坐标值,再画一段字符串数字出来,把两个的位置调整好就可以实现需要的效果
-(void) drawRectangle:(NSRect) frame
{
float pointx = 165;
NSString *str =[NSString stringWithFormat:@"%ld",[item iCount]];//[item iCount]是输入的数字,如“456”“7895”
NSFont *font = [NSFont fontWithName:str size:15];
font = [NSFont systemFontOfSize:15];
//获取字符串的宽度和高度
NSSize strSize = [str sizeWithAttributes:[NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName]];
NSLog(@"width:%f,heightz;%f",strSize.width,strSize.height);
if (strSize.width<28)//判断输入的数字是否是两位数,由于两位数的时候,与矩形框设置的宽度有点小,所以设置一个固定值。
{
if (strSize.width<10)
{
pointx +=3;
}
strSize.width = 25;
}
else if (strSize.width>45)//根据需要设置了五位数,如果不需要这个限制条件可以除去。
{
strSize.width = 43;
}
NSBezierPath *thepath =[NSBezierPath bezierPathWithRoundedRect:NSMakeRect(160, frame.origin.y+4, strSize.width, 17)
xRadius:6 yRadius:20];//xRadius:6 yRadius:2这两个值是设置矩形的弧度
[thepath setLineWidth:0.3];
[[NSColor blackColor] set];
[thepath stroke];
[str drawAtPoint:NSMakePoint(pointx, frame.origin.y+4) withAttributes:nil];
}