The popover window moves because its parent window is a status window, and when the parent window moves, the child moves with it. (Before I explored this, I didn’t even know that Cocoa has parent and child windows.) I solved the problem with this code right after showing the popover:
NSWindow *popoverWindow = self.popup.contentViewController.view.window; [popoverWindow.parentWindow removeChildWindow:popoverWindow];
Now the menu bar still moves up, but at least the popup remains in one place.
tbodt source share