2010-08-06 2 views
3

모달 시트를 표시 할 때 코코아가 수행하는 애니메이션을 비활성화하고 싶습니다.모달 시트를 표시 할 때 어떻게 코코아의 기본 애니메이션을 비활성화 할 수 있습니까?

애플의 Sheet Programming Guide 상태 :

... 다른 시트 행동이 나타나는 그라운드를 떠납니다 같은 애니메이션으로는 응용 프로그램 키트에 의해 자동으로 처리됩니다.

그러나이 효과를 비활성화하는 방법에 대한 어떠한 힌트도 제공하지 않습니다.

사용자 정의 시트 (투명한 배경과 일부 컨트롤이있는 NSWindow의 하위 클래스)를 만들었습니다.

[NSApp beginSheet:myCustomSheet 
    modalForWindow:mainWindow 
    modalDelegate:self 
    didEndSelector:...]; 

시트가 표시됩니다 잘하지만,이 나타나면 그것은 애니메이션 통과, 다시는 닫을 때 : 나는 다음과 같이 표준 beginSheet 방법을 사용하여 표시 할 수 있어요.

참고 : 터치 스크린/키오스크 유형 앱을위한 완전히 맞춤화 된 사용자 인터페이스를 작성 중이므로 일반적인 Apple 사용자 인터페이스 가이드 라인이 적용되지 않습니다.

답변

0

이것은 야생의 추측입니다. (너무 시끄러워요.) 애니메이션은 Core Animation을 사용하여 처리 될 수 있습니다. 그렇다면 다음을 수행 할 수 있습니다.

[CATransaction begin]; 
[CATransaction setValue: [NSNumber numberWithBool: YES] 
    forKey: kCATransactionDisableActions ]; 
[NSApp beginSheet:myCustomSheet 
    modalForWindow:mainWindow 
    modalDelegate:self 
    didEndSelector:...]; 
[CATransaction commit]; 
1

애니메이션 속도에 대한 사용자 기본값이 있습니다. 찾아보고 0으로 설정하려고하면 어떻게 될지 알아보십시오.

+1

다른 사람들에게 그것을 찾는 데 어려움이 없도록하려면 NSWindowResizeTime입니다. 다음은 토론입니다. http://www.macosxhints.com/article .php? story = 2004051208143172 – JWWalker

+0

감사합니다. 나는 위키를 만들었으니 그것에 어떤 정보라도 자유롭게 덧붙여 라. –

+0

링크를 구독해야합니까? – tofutim

관련 문제