2010-12-28 9 views
0

창을 열었을 때 창을 페이드 아웃하고 창을 닫을 때 어떻게 닫습니까?창 페이드 인 및 아웃

이것은 목표 C에서 수행해야합니다. 이는 AppleScript-Objective-C 프로젝트의 일부 여야합니다. 나는 창에 연결된 속성을 사용하고 있고, 그 위에 makeKeyAndOrderFront를하고있다 ...

어떤 도움을 주실 수 있나요?

답변

7

서브 클래스 NSWindow 표시 (또는 카테고리를 추가)을 추가 : 이것은 프로그래밍/축소 창을 페이드 할 수 있습니다

- (void)fadeInAndMakeKeyAndOrderFront:(BOOL)orderFront { 
    [self setAlphaValue:0.0]; 
    if (orderFront) { 
     [self makeKeyAndOrderFront:nil]; 
    } 
    [[self animator] setAlphaValue:1.0]; 
} 

- (void)fadeOutAndOrderOut:(BOOL)orderOut { 
    if (orderOut) { 
     NSTimeInterval delay = [[NSAnimationContext currentContext] duration] + 0.1; 
     [self performSelector:@selector(orderOut:) withObject:nil afterDelay:delay]; 
    } 
    [[self animator] setAlphaValue:0.0]; 
} 

.

는 자사의 닫기 버튼을 누르면됩니다 때 윈도우가 페이드 아웃 윈도우의 위임이를 추가하려면

- (BOOL)windowShouldClose:(id)sender { 
    [window fadeOutAndOrderOut:YES]; 
    return NO; 
} 

대신 당신이 그렇지이라고 부르는의 페이드 전화 [window fadeInAndMakeKeyAndOrderFront:YES];있는 창을 표시합니다.

+0

고맙습니다. 그것은 * 작동합니다. * 빌드 할 때 오류가 없지만 작동하지 않습니다. –

+0

페이드 인을 보려면 창에 0.0의 알파 값이 있어야합니다. 지금 작동해야합니다. – Regexident

+0

여전히 불행하게도 작동하지 않습니다. –

관련 문제