public void BeforePopup()
{
// Early opening before we call NSMenu.PopUpMenu
beforePopupCalled = true;
menu.RemoveAllItems();
foreach (ToolStripItem item in owner.Items)
{
var menuItem = item.ToNSMenuItem();
var actionObj = new ActionDispatcher((sender, e) =>
{
owner.OnItemClicked(new ToolStripItemClickedEventArgs(item));
item.PerformClick();
});
menuItem.Target = actionObj;
menuItem.Action = ActionDispatcher.Action;
menuItem.Menu?.RemoveItem(menuItem);
menu.AddItem(menuItem);
}
}