Search code examples
xcodemodal-dialognswindownspanel

How to create a NSPanel modally popuped from NSWindow (Cocoa programming)


like NSPanel displayed after a button clicked in the NSWindow.

I looked for a lot but there is no simple example. Thanks for any help.


Solution

  • It can be done like this:

    -(IBAction)showButtonAction:(id)sender {
        [[NSApplication sharedApplication] beginSheet:panelOutlet
                                       modalForWindow:self.window
                                        modalDelegate:self
                                       didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:)
                                          contextInfo:nil];
    }
    

    Attention:

    Don't forget to uncheck NSPanel's Visible At Launch checkbox in Attributes Inspector and Release When Closed if you will use this panel not once.

    Result:

    Screenshot image