Re: Alert Sheets hard wired in Interface Builder
Re: Alert Sheets hard wired in Interface Builder
- Subject: Re: Alert Sheets hard wired in Interface Builder
- From: Graham Cox <email@hidden>
- Date: Thu, 29 May 2008 13:58:48 +1000
Here's a trivial category to address this. Whether it's really worth
using is hard to say, but for what it's worth:
@interface NSWindow (SheetAdditions)
- (void) beginSheet:(NSWindow*) sheet modalDelegate:(id) modalDelegate
didEndSelector:(SEL) didEndSelector contextInfo:(void*) contextInfo;
- (void) beginSheetModalForWindow:(NSWindow*) docWindow modalDelegate:
(id) modalDelegate didEndSelector:(SEL) didEndSelector contextInfo:
(void*) contextInfo;
@end
@implementation NSWindow (SheetAdditions)
- (void) beginSheet:(NSWindow*) sheet modalDelegate:(id) modalDelegate
didEndSelector:(SEL) didEndSelector contextInfo:(void*) contextInfo
{
[NSApp beginSheet:sheet modalForWindow:self
modalDelegate:modalDelegate didEndSelector:didEndSelector
contextInfo:contextInfo];
}
- (void) beginSheetModalForWindow:(NSWindow*) docWindow modalDelegate:
(id) modalDelegate didEndSelector:(SEL) didEndSelector contextInfo:
(void*) contextInfo;
{
[NSApp beginSheet:self modalForWindow:docWindow
modalDelegate:modalDelegate didEndSelector:didEndSelector
contextInfo:contextInfo];
}
@end
On 29 May 2008, at 1:29 pm, Scott Ribe wrote:
I agree with your assessment. What business has NSApplication
providing this method? it doesn't make sense.
Probably because it involves the run loop and event dispatch, since
the
running a window as a sheet must ensure that the window to which the
sheet
is attached does not receive events, yet a click in that parent
window must
bring the pair forward... Further, I'll bet it's also there because
the
method to run a window application-modally was there first. So if
you think
about what the method must *really* do, it no longer appears to be
so bound
to the window, because it requires doing things that are clearly not
the
responsibility of the window. Yes, the method could be in NSWindow
and call
on NSApplication to get that done, but, should a window really be
able to
have such a drastic effect on the events going to other windows???
But I had the same difficulty as everybody else locating it the
first time.
And then again, later, when I had not used it for a while ;-)
--
Scott Ribe
email@hidden
http://www.killerbytes.com/
(303) 722-0567 voice
_______________________________________________
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