NSMenuItem.separator() appears as blank space in Finder Sync extension context menu

Hi,

I’m developing a macOS Finder Sync extension and noticed that NSMenuItem.separator() does not appear to render as a standard separator line when used inside the menu returned from FIFinderSyncController.

In a normal AppKit NSMenu, the separator renders as expected. However, when the same kind of menu is returned from the Finder Sync extension, the separator appears as a blank/full-height empty row rather than a thin dividing line.

Example:

override func menu(for menuKind: FIMenuKind) -> NSMenu {
    let menu = NSMenu(title: "")

    menu.addItem(NSMenuItem(
        title: "First Action",
        action: #selector(firstAction(_:)),
        keyEquivalent: ""
    ))

    menu.addItem(NSMenuItem.separator())

    menu.addItem(NSMenuItem(
        title: "Second Action",
        action: #selector(secondAction(_:)),
        keyEquivalent: ""
    ))

    return menu
}

Expected result:

The separator should render as a normal macOS menu separator line between the two menu items.

Actual result:

In Finder’s context menu, the separator is displayed as blank vertical space / an empty menu row.

I understand that Finder Sync menus are rendered by Finder and may not support every NSMenuItem feature. However, NSMenuItem.separator() is a very standard way to visually group menu commands, so I wanted to ask:

  1. Is this a known limitation of Finder Sync extension menus?
  2. Is there a supported way to display a real separator line in Finder Sync context menus?
  3. Should this be filed as a Feedback Assistant issue against Finder Sync / AppKit?

I’m trying to avoid fake separators such as disabled menu items with "────" as the title, since that does not feel native and may not behave well with different fonts, accessibility settings, or appearance modes.

Thanks!

NSMenuItem.separator() appears as blank space in Finder Sync extension context menu
 
 
Q