2011-08-05 2 views
1

내 OSX 응용 프로그램에 대한 사용자 지정 커서를 가져 오려고합니다. 지난 몇 시간 동안 성공하지 못하면서이 일을 읽었습니다. 그래서 나는 가장 단순한 측면으로 이동했습니다. 단순히 다른 커서가있는 프로젝트에서 현재 커서를 십자 커서로 설정하기 만하면됩니다.NSCursor 설정 명령의 가장 간단한 사용

나를 위해 커서를 변경하지 않는 가장 기본적인 설정입니다. XCode를 사용하여 새로운 코코아 프로젝트를 만들었습니다. 내가 작성한 유일한 코드는 다음 함수에서 하나의 단일 행입니다.

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
     [[NSCursor crosshairCursor] set]; 
} 

이것은 아마 내가 매우 기본적인 뭔가를 놓친 거지 즉, 커서를 변경하지 않습니다,하지만 내 인생에 대한 알아낼 수 없습니다.

NSCursor -push 메서드를 사용하여 현재 커서를 변경 한 많은 변형을 시도했지만 작동하지 않습니다. 나는 또한 다른 대답이 제안 같은 NSButton을 가하고 다음 일을 시도 here (버튼 타입 NSButton *의없는 곳에) : Mac 용 결코 내가 전에 아이폰에 대한 몇 가지 애플 리케이션을 작성했습니다

[button addCursorRect:[button bounds] cursor:[NSCursor crosshairCursor]]; 

하지만, ,하지만 꽤 비슷해 보입니다. 절망적으로 뭔가를 놓치고 있습니까? 나는 또한 addCursorRect : cursor : 메소드를 가지고 노는 시도를 해봤지만, 나는 제대로했는지 확신 할 수 없다. 어떤 기능이 무엇이라고 부르는 지 명확하지 않았습니다.

다른 커서를 표시하는 방법을 파악한 후에는 커서에 대한 내 자신의 이미지를 만들려고합니다.

감사합니다.

답변

1

왜 그런지 잘 모르겠지만 applicationDidFinishLaunching에서 커서를 설정하면 작동하지 않는 것 같습니다. (방금 시도했습니다.)하지만 나중에 버튼을 클릭하거나 실행 중에 타이머를 사용하는 것처럼 나중에 수행하면 작동합니다.

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
    [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timer:) userInfo:nil repeats:NO]; 
} 

-(void)timer:(id)foo 
{ 
    [[NSCursor pointingHandCursor] set]; 
} 
+0

고마워요! 그것은 나를 위해 일한다! 이것은 아이폰 용으로 개발할 때 겪었던 것과 매우 비슷한 문제를 상기시킨다. 아이폰으로도 카메라 불을 지닌 것과 같은 명령을하지 않아도 문제가 발생하는 사람은 위에 언급 한대로 지연된 기능이나 나중에 기능을 수행해야합니다. applicationDidFinishLaunching에서 수행 할 때 원하는 결과를 제공하지 않는 명령을 보았습니다. 이것에 대한 이유가있을 수도 있고 없을 수도 있지만, 지금은 해결 방법으로 충분합니다. – AJJ

+1

반가워요. Apple이 콜백 applicationAlmostButNotCompletelyFinishedLaunching을 호출해야합니다.) –