2013-02-14 6 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

촬영은, i)는 "CGRectMake (LR, 0, 200, 100) 말을 마지막 줄 의미, – user2073270

+0

당신을 위해 그것을 해결 당신은 귀하의 게시물을 편집 할 수 있습니다, BTW – Jeremy

답변

0

당신이 LR을 증가 후었던 MovieRight 내부 [self setNeedsDisplay]을보십시오!.

+1

NSView의 setNeedsDisplay이 ​​:. 인수를 거쳐야을 –

1

당신은 drawRect에서 setNeedsDisplay를 호출하고 싶지 않습니다. 간단히 말하자면, "이제 내가 그 견해를 그렸으니 다시 한번 그렇게해라!"

작업을 수행 할 때 setNeedsDisplay를 호출하고 직사각형을 이동 한 후 화면을 업데이트하려고합니다. ..

+0

확인 나는 그것을 시도했다. 그러나 그것은 아직도 doesnt한다 일한다, 그것은 '자기 setNeedsDisplay : YES'에도 불구하고, 디스플레이가 리셋되지 않습니다 .... 내가 다시 그리기 위해 사각형을 얻으 려하지 않는 트릭이 있습니까? – user2073270