Search code examples
macosnspopover

How to make NsPopover in Xcode 6.3 OS X10.10 in objective C


I am a new developer, I am trying to develop Nspopover on button click but I am not getting relevant resources so how should I do in XCode 6.3.


Solution

  • https://developer.apple.com/library/mac/samplecode/Popover/Listings/MyWindowController_m.html

    BTW it's faster if you search by yourself "nspopover site:developer.apple.com/library/mac/samplecode"

    @property (weak) IBOutlet NSViewController *popoverViewController;
    
    // -------------------------------------------------------------------------------
    //  showPopoverAction:sender
    // -------------------------------------------------------------------------------
    - (IBAction)showPopoverAction:(id)sender
    {
        [self createPopover];
    
        NSButton *targetButton = (NSButton *)sender;
    
        // configure the preferred position of the popover
        NSRectEdge prefEdge = popoverPosition.selectedRow;
    
        [self.myPopover showRelativeToRect:[targetButton bounds] ofView:sender preferredEdge:prefEdge];
    }
    
    
    // -------------------------------------------------------------------------------
    //  createPopover
    // -------------------------------------------------------------------------------
    - (void)createPopover
    {
        if (self.myPopover == nil)
        {
            // create and setup our popover
            myPopover = [[NSPopover alloc] init];
    
            // the popover retains us and we retain the popover,
            // we drop the popover whenever it is closed to avoid a cycle
            //
            // use a different view controller content if normal vs. HUD appearance
            //
    
            self.myPopover.contentViewController = popoverViewController;
    
            // AppKit will close the popover when the user interacts with a user interface element outside the popover.
            // note that interacting with menus or panels that become key only when needed will not cause a transient popover to close.
            self.myPopover.behavior = NSPopoverBehaviorTransient;
        }
    }