2013-02-14 75 views
1

我正在尝试学习石英的基础知识,不明白为什么这不起作用 - 当按钮被按下时,它应该将红色矩形移动到右边,蝙蝠在妈妈身上,它不会做任何事情 - 了“的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

拍,我的意思的最后一行说“CGRectMake(LR,0,200,100)); – user2073270 2013-02-14 19:09:31

+0

修正为你您可以编辑您的帖子,顺便说一句 – Jeremy 2013-02-14 19:17:24

回答

0

尝试[self setNeedsDisplay]内MoveRight的你增加LR后!

+1

的NSView setNeedsDisplay:。确实需要一个参数 – 2013-02-15 03:54:42

1

你不想在drawRect中调用setNeedsDisplay;简单地说,“现在我已经提出了观点,让我再做一次!”

您想要在您的操作中调用setNeedsDisplay以在移动矩形后更新屏幕。

+0

好我尝试过,但仍然无法正常工作,似乎尽管'[self setNeedsDisplay:YES];'显示不重置....是否有任何技巧,我不知道要获取矩形重绘? – user2073270 2013-02-20 17:01:10