2011-01-08 2 views
0

NSStatusItem 측면에서 뭔가를 표시하려고합니다. 두 가지 방법으로이 작업을 수행 할 수 있다고 생각합니다.NSStatus 외부의 좌표 또는 도면에서 창 그리기 항목

마우스 커서의 좌표에서 필요한 이미지로 투명 창이 표시됩니다.

또는

사용자 정의 NSStatusItem를 사용하고이 상태 항목에 문제가

떨어져 실제로 있도록합니다 (NSRect 프레임 부정적인를 설정, 왼쪽으로보기에 -200을 컨트롤/이미지를 이동, 0,100,50) 실제로 작동하지 않는 것 같습니다. 그렇다면 상태 항목의 경계를 벗어나는 상황 (CSS 오버 플로우 속성 생각) 또는 특정 좌표에서 투명한 창을 렌더링하려면 어떻게해야합니까?

답변

1

시스템을 사용하면 상태 항목 외부로 그릴 수 없지만 투명한 창이 사용됩니다.

NSRect rect; //The location of the window 
NSWindow *win = [[NSWindow alloc] initWithContentRect:rect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES]; 
[win setOpaque:NO]; 

[win setBackgroundColor:[NSColor clearColor]]; 
//or 
[win setContentView:myView]; 

여기 myView는 창의 배경이 될 사용자 정의보기입니다. 창을 투명하게 만들려면 배경색을 지우거나 투명하지 않은 부분 만 그리는 사용자 정의 컨텐츠보기를 사용해야합니다. 플로팅 윈도우를 사용하여 맨 위에 머무르게 할 수 있습니다. 창문이 그 아래에있는 이벤트를 가로 챌 수 있기 때문에 중요한 것을 은폐하지 않도록주의하십시오.

+0

한 가지를 제외하고는 완벽하게 작동합니다 (플로팅 창으로 만들고 makeKeyAndOrderFront와 함께 표시됨). 그것은 약 1 초 동안, 정확히 내가 원하는 방식으로 표시합니다. 그러면 사라집니다. 그냥 사라집니다 - 로그 및 애플 리케이션에 아무것도 아무것도 잘 실행됩니다. 무슨 일이 일어날 지에 대한 아이디어가 있습니까? 편집 : 창에서 단추를 몇 초 머물 것으로 보인다. 그것은 비활성 상태 일 때 사라지는 것 ... –

+0

잘 모르겠습니다. 아마도 석방 될 것인가? 그렇지 않은 경우 투명하게 만들고 여전히 사라지는 지 확인하십시오. – ughoavgfhw

관련 문제