Re: Minimizing Sheets
Re: Minimizing Sheets
- Subject: Re: Minimizing Sheets
- From: "Gerriet M. Denkmann" <email@hidden>
- Date: Fri, 17 Oct 2008 17:48:52 +0200
On 17 Oct 2008, at 15:57, Jason Coco wrote:
On Oct 17, 2008, at 06:03 , Gerriet M. Denkmann wrote:
I have an app which overrides -[NSWindow miniaturize:] in a
category (to avoid crowding the dock).
Works perfectly, but...
If this window being minimized has a sheet attached (attachedSheet
is non-nil) this will be lost on deminiaturizing. But the modal
loop is still running, waiting for some button to be pressed on
the now invisible sheet.
In this case Force Quit is the only way out. Not very nice.
So, what can be done?
1. On miniaturize simulate a click on the "Cancel" button of the
sheet. But how?
If you have a reference to the cancel button, you can send the
performClick:(id)sender message to it on miniaturize...
Well, generally I have not.
E.g. sometimes someone (NSDocumentController?) runs a sheet stating
that it did not know where to save, with the subtitle: "You can
specify where to save it." and buttons: Cancel, Save As...
2. On deminiaturize reattach this sheet. But again: how?
In this case, when your miniaturization method is invoked, check to
see if you are in the modal loop. If you are, abort the
loop, set a state variable (probably some private ivar) and
miniaturize. When you de-miniaturize, check the state var and if
set, display the sheet and start the modal loop again...
I don't see how I could do this, when the sheet is run from a class
not made by me (like NSDocumentController).
I messed around with abortModal, saving the sheet and then in de-
miniaturize redisplay it with makeKeyAndOrderFront, but did not have
any success.
3. (don't like this very much) refuse to miniaturize if a sheet is
open.
So this still has to be my current workaround.
Kind regards,
Gerriet.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden