我在NSView上的自定义类中有这个,当我使用drawMyRec IBAction按下按钮时,我想改变我的NSRect的颜色但是这不起作用,任何人都可以帮忙吗?
#import "myView.h"
@implementation myView
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
RectColor = [[NSColor blackColor] init];
}
return self;
}
- (IBAction)drawMyRec:(id)sender;
{
NSLog(@"pressed");
RectColor = [[NSColor blueColor] init];
[self setNeedsDisplay:YES];
}
- (void)drawRect:(NSRect)dirtyRect
{
NSRectFill(dirtyRect);
[RectColor set];
}
@end
答案 0 :(得分:2)
首先,为什么要在-init
上拨打NSColor
?其次,在绘制矩形之后,你是set
颜色,所以在下次重绘之前它不会生效。 3,调用dirtyRect
时-drawRect:
是什么?为什么不填写整个矩形而不管什么是脏的?
答案 1 :(得分:2)
您的drawRect
功能不正确。改为:
- (void)drawRect:(NSRect)dirtyRect
{
[RectColor set];
NSRectFill(dirtyRect);
}