我正在尝试学习石英的基础知识,并且不明白为什么这不起作用 - 当按下按钮时,这应该将红色矩形向右移动,在按下按钮时,它不会做任何事情 - “NSLog(A”帮助“);试图弄清楚按钮是否正常工作 - 谢谢
@implementation QuartzView
-(IBAction)moveRight:(id)sender{
NSLog(@"Help");
lR += 50;
}
- (id)initWithFrame:(NSRect)frameRect
{
self = [super initWithFrame:frameRect];
if (self) {
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect
{
CGContextRef myContext = [[NSGraphicsContext // 1
currentContext] graphicsPort];
// Drawing code here.
CGContextSetRGBFillColor (myContext, 1, 0, 0, 1);// 3
CGContextFillRect (myContext, CGRectMake (lR, 0, 200, 100 ));
[self setNeedsDisplay:YES];
}
@end
谢谢!
答案 0 :(得分:1)
您不想在drawRect中调用setNeedsDisplay;简单地说,“既然我已经绘制了视图,那就让我再做一次!”
您想在动作中调用setNeedsDisplay,以在移动矩形后更新屏幕。
答案 1 :(得分:0)
在递增lR后,在moveRight中尝试[self setNeedsDisplay]
。