2012-10-27 5 views
0

LSUIElement로 표시된 응용 프로그램에서 작업 중이며 기본 창은 NSPanel이며 상태 표시 줄에 '첨부'되어 있습니다. 때때로 NSRunAlertPanel 또는 NSAlert를 사용하여 일반 경고 패널을 표시해야합니다. 그러나 패널이 항상 사용자가 현재있는 공간에 표시되는 것이 매우 중요합니다. 그렇지 않으면 사용자가 즉시 패널을 보지 못할 수도 있고 패널에서 중요한 역할을 할 수도 있습니다.NSRunAlertPanel에서 모든 공간에 경고를 표시합니까? - Objective-C/10.7 +

문제는 사용자가 현재 공간에서가 아니라 응용 프로그램의 창과 마지막으로 상호 작용 한 공간에 경고가 항상 표시된다는 것입니다. 예를 들어, 1 번 공간에서 내 앱의 NSPanel을 열고 닫으면 2 번 공간으로 이동하고 나중에 앱에 경고가 표시되고 2 번이 아닌 1 번 공간에 경고가 표시됩니다. I (또는 일반 사용자)는 첫 번째 공간으로 전환하기 전까지 경고를 보지 않습니다.

이 동작을 변경할 수있는 방법은 없습니까? (항상 현재 공간에 경고를 표시하는 방법)?

답변

2

정확히 알 수는 없지만 알림 창을 표시하기 전에 NSWindowCollectionBehaviorCanJoinAllSpaces을 사용하여 해당 컬렉션 동작을 setCollectionBehavior:으로 설정하십시오. 그러면 현재 공간을 포함한 모든 공간에 창이 나타납니다 ...

+0

그건 ... 완벽합니다. 고마워요! – Alex

+0

+1. 이것을 지적 해 주셔서 감사합니다. 이 부분을 자세히 살펴보면 주목할 점은 NSWindowCollectionBehaviorStationary를 콜렉션 동작에 추가하면 공간 전환 중에 창을 숨기지 않으므로보다 매끄러운 공간 전환이 가능하다는 것입니다. – hvanbrug