objective c - NSPopover with NSPopoverBehaviorSemitransient in toolbar not closing -
i have 3 buttons in nstoolbar (mac os x). each of buttons triggers different nspopover appear relative button sending action. part works correctly. 2 of popovers utilize nspopoverbehaviortransient, 1 uses nspopoverbehaviorsemitransient (because want remain open when switching between apps or moving window).
when 1 of transient popovers open , click anywhere besides popover itself, popover closes correctly. same goes semitransient popover (aside switching apps , moving window) except if click on 1 of toolbar buttons shows popover. in case both popovers visible on screen @ same time. (i suspect bug.)
i've tried investigating ways can initiate closing myself if toolbar button pushed. alternative i've come maintain track of opened popover @ document level , create sure manually close before opening one. i'd rather semitransient popover able close itself.
is there i'm overlooking? thanks.
the opaque definition of semitransient behavior includes semitransient popovers not close event (e.g. mouse click) results in opening or closing popover.
a notable exception showing semitransient popover cause other semitransient popovers close...
so not bug, poorly defined behavior.
unfortunately, means if want utilize mix of semitransient & transient popovers, need maintain track of shown popover @ higher level. alternative create of popovers semitransient, , add together in closing logic specific popovers if design requires that.
it worth filing radars (1) better, documented definitions of semitransient & transient behaviors (2) deeper customization of these behaviors
objective-c appkit nstoolbar nspopover
No comments:
Post a Comment