2014-06-21 1 views
1

NSToolbar (Mac OS X)에 현재 세 개의 버튼이 있습니다. 각 단추는 동작을 보내는 단추에 상대적으로 다른 NSPopover을 표시합니다. 그 부분은 올바르게 작동합니다. 팝업 중 두 개는 NSPopoverBehaviorTransient을 사용하고, 하나는 NSPopoverBehaviorSemitransient을 사용합니다 (특히 앱을 전환하거나 창을 이동할 때 열어두기를 원하기 때문입니다).도구 모음의 NSPopoverBehaviorSemitransient가있는 NSPopover가 닫히지 않습니다.

Transient popovers 중 하나가 열려 있고 popover 자체 이외의 곳을 클릭하면 popover가 올바르게 닫힙니다. 다른 popover를 보여주는 도구 모음 버튼 중 하나를 클릭하면 Semitransient popover (앱 전환 및 창 이동 제외)의 경우 을 제외하고는이됩니다. 이 경우 현재 두 화면 모두 팝업이 동시에 화면에 표시됩니다. (나는 이것이 버그 생각한다.)

Screenshot of popovers onscreen at the same time.

나는 내가 나 자신을 폐쇄하는 것은 또 다른 도구 모음 버튼을 누르면 경우 시작할 수있는 방법을 조사 시도했습니다. 유일한 옵션은 현재 열려있는 팝업 메뉴를 문서 수준에서 추적하고 다른 메뉴를 열기 전에 수동으로 닫는 것입니다. 차라리 Semitransient popover가 닫힐 수 있습니다.

제가 간과하고있는 것이 있습니까? 감사.

답변

2

Semitransient 비헤이비어의 불투명 한 정의에는 Semitransient popovers가 다른 popover를 열거 나 닫는 이벤트 (예 : 마우스 클릭)에서 닫히지 않는다는 내용이 포함됩니다.

주목할만한 예외는


그래서이 버그, 단지 제대로 정의 행동하지 않습니다 ... Semitransient 팝 오버를 보여주는 것은 다른 Semitransient popovers가 닫을 것입니다.

불행히도 Semitransient & Transient popovers 조합을 사용하려면 더 높은 수준에서 표시된 popover를 추적해야합니다. 대안으로는 모든 popovers를 Semitransient로 만들고 디자인에 필요한 경우 특정 팝업에 대한 추가 논리를 추가하는 것입니다.

그것은 이러한 행동의 (1), 더 나은 Semitransient & 과도 행동의 문서화 된 정의 (2) 깊은 정의를 위해 레이더를 제출 가치가있을 것입니다

관련 문제