NSPopover in Menübar

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Das Problem ist wohl, dass sich ein NSPopover immer relativ zum übergebenen positioningView öffnen. Um ein NSPopover z.B. unabhängig von den aktuellen NSWindows einer App zu öffnen könntest Du evtl. ein transparentes NSWindow an der gewünschten Stelle öffnen und den contentView dieses NSWindows als positioningView für das NSPopover verwenden.

    Habe dies noch nicht getestet, aber dies sollte eigentlich funktionieren.
  • Hallo,

    habe ich richtig verstanden, dass Du ans StatusItem-Ding ein Popover hängen möchtest?
    Das funktioniert problemlos.

    Viele Grüße

    Quellcode

    1. -(void)showPopover:(id)sender
    2. {
    3. // …
    4. NSPopover *popover = self.contentPopover;
    5. if(popover != nil)
    6. {
    7. return;
    8. }
    9. // …
    10. NSView *view = [self statusItemView];
    11. if(view == nil)
    12. {
    13. return;
    14. }
    15. // …
    16. popover = [[[NSPopover alloc] init] autorelease];
    17. if(popover == nil)
    18. {
    19. return;
    20. }
    21. // …
    22. NSViewController *viewController = [[[NSViewController alloc] init] autorelease];
    23. if(viewController == nil)
    24. {
    25. return;
    26. }
    27. viewController.view = [[[NSView alloc] initWithFrame:NSMakeRect(0.0, 0.0, 200.0, 200.0)] autorelease];
    28. // …
    29. [popover setContentViewController:viewController];
    30. [popover setDelegate:self];
    31. [popover setAnimates:YES];
    32. [popover setBehavior:NSPopoverBehaviorTransient];
    33. // …
    34. self.contentPopover = popover;
    35. // …
    36. [popover showRelativeToRect:[view bounds]
    37. ofView:view
    38. preferredEdge:NSMaxYEdge];
    39. // …
    40. }
    Alles anzeigen