[Cocoa]_[初级]_[画一个矩形框,并在里面填充数据]
2015-02-05 18:22
218 查看
原理:首先在一个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]; }
相关文章推荐
- [Cocoa]_[初级]_[使用NSMutableDictionary对多层循环里面的数据进行查找]
- SQL]合并一个表里面的的多行数据(如果不重复则合并,如果重复则舍弃)
- 打开一个Excel模板文件填充数据另存为一个文件
- 多张表数据填充到一个表中,或不同条件数据在同一张表或多张表中填补一个对象后,以不同条件分别填充不同对象。
- excel每一条数据 生成成一个word模板,(模板里面的字段需要动态的绑定excel属性)
- 根据一个URL,向IE发起请求,得到这个URL里面的原始数据
- 打开一个Excel模板文件填充数据另存为一个文件
- 如何在Win32窗口程序中发命令打开一个控制台,往里面打印(printf())输出一些数据
- oracle里面写脚本把一个表里的数据做处理导入另一个表
- 如果在一个KeyFigure的Rule里面,使用另外一个KeyFigure的数据,如何实现?
- 用程序把word模板中的一个表格复制为多个表格然后填充数据(工资单的例子)
- 怎么把多个表的数据读到一个DATAGRID里面?
- 两个数据表链接怎样把它们的数据在一个页面里面显示
- [例题]VB操作Excel (1)[用VB创建一个xls文件][并向里面写入一个数据]
- asp.net 创建Excel并且填充里面数据
- 页面aspx里面有一个DataSet ds,且他下面的几个用户控件uc1,uc2,uc3都有用到这个ds相同的数据,所以我想要让这个ds在整个页面中使用
- 学习EXT第九日(B):为一个表单填充或提交数据
- 快速备份一个表以及里面的数据
- 一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。
- 一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它