> On 25 Aug 2015, at 03:56, Seth Willits <sli...@araelium.com> wrote: > > Naturally we're all accustomed to the pattern: > > [sheet beginSheetModalForWindow:window completionHandler:^(NSInteger > response){ > ... > }]; > > > > But with the new "presentation" API, there's no built-in mechanism for > handling the sheet being closed. To have a similar pattern as before would > require: > > > otherVC.completionHandler = ^(NSInteger response){ > ... > }; > [someVC presentViewControllerAsSheet:otherVC]; > > > > @implementation OtherViewController > > // @property void (^completionHandler)(NSInteger response); > > - (IBAction)ok:(id)sender > { > [self dismissController:nil]; > if (self.completionHandler) { > self.completionHandler(NSOKButton); > self.completionHandler = nil; // Gotta kill the likely circular > reference. > } > } > > .... > > @end > > > > > No doubt it's flexible, but it's a bit verbose. I just want to double-check I > didn't miss some other pattern we're supposed to be using.
Generally a delegate rather than block seems a bit neater here, but yeah, this seems to be the general expected approach. I figure a major advantage is that whatever callback system you put in place can report back far more than just a integer value; it can also specify an object the user selected, that sort of thing. _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com