How to change NSPopover background color include triangle part?

后端 未结 8 608
无人及你
无人及你 2020-12-02 23:25

How can I change NSPopover background color include triangle part?

\"enter

8条回答
  •  情深已故
    2020-12-02 23:57

    It's actually much simpler and you won't need private API.

    Make the root view of your view controller a custom class

    @implementation MyPopoverRootView
    
    -(void)viewDidMoveToWindow
    {
         NSView * aFrameView = [[self.window contentView] superview];
         MyPopoverBackgroundView * aBGView  =[[MyPopoverBackgroundView alloc] initWithFrame:aFrameView.bounds];
         aBGView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
         [aFrameView addSubview:aBGView positioned:NSWindowBelow relativeTo:aFrameView];
         [super viewDidMoveToWindow];
    }
    
    @end
    

    Your background view just draws the desired color in its bounds.

    @implementation MyPopoverBackgroundView
    
    -(void)drawRect:(NSRect)dirtyRect
    {
        [[NSColor whiteColor] set];
        NSRectFill(self.bounds);
    }
    
    @end
    

提交回复
热议问题