【发布时间】:2012-11-16 23:26:21
【问题描述】:
我想用 3 张图片绘制我自己的 TextField。
- input_l.png - 输入的左侧
- input_m.png - 输入的中间部分 - 1px 宽 - 应该拉伸或相乘以填充中间部分
- input_r.png - 右侧
所有图像都包含边框、背景、阴影,只是我需要用这些图片绘制它的所有内容。
但我无法使用 NSTextField 的子类和这些方法来绘制它:
- (void)awakeFromNib
{
[self setDrawsBackground:NO];
}
- (void)drawRect:(NSRect)rect
{
NSDrawThreePartImage(rect, [NSImage imageNamed:@"input_l.png"], [NSImage imageNamed:@"input_m.png"], [NSImage imageNamed:@"input_r.png"], NO, NSCompositeSourceOut, 1.0, NO);
[super drawRect:rect];
}
它用文本/占位符绘制黑色背景。
它应该是这样的: http://d.pr/i/VLEN
如果有其他更好的方法来绘制这个,请告诉我 :) 我突然想到我可以使用 1px 宽的不带边框的背景图像来绘制这个,并且在代码中使角变圆并以某种方式绘制均匀的边框。但是我仍然想知道如何按照我尝试的方式进行操作,以备将来使用。
【问题讨论】:
-
所以我尝试用 [NSBezierPath bezierPathWithRoundedRect:xRadius:yRadius] 绘制边框,它看起来有点难看。有点像素化了。
标签: objective-c macos cocoa