diff --git a/native/Avalonia.Native/src/OSX/menu.mm b/native/Avalonia.Native/src/OSX/menu.mm index 909a504dc7..ca03c50e59 100644 --- a/native/Avalonia.Native/src/OSX/menu.mm +++ b/native/Avalonia.Native/src/OSX/menu.mm @@ -159,7 +159,10 @@ HRESULT AvnAppMenu::RemoveItem (IAvnAppMenuItem* item) HRESULT AvnAppMenu::SetTitle (void* utf8String) { - [_native setTitle:[NSString stringWithUTF8String:(const char*)utf8String]]; + if (utf8String != nullptr) + { + [_native setTitle:[NSString stringWithUTF8String:(const char*)utf8String]]; + } return S_OK; } diff --git a/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs b/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs index dc713df56c..1ae4a783d7 100644 --- a/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs +++ b/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs @@ -54,6 +54,8 @@ namespace Avalonia.Native { _factory = factory; _nativeWindow = nativeWindow; + + DoLayoutReset(); } public bool IsNativeMenuExported => _exported; @@ -107,7 +109,7 @@ namespace Avalonia.Native _menuItems.Clear(); - SetMenu(_nativeWindow, _menu.Items); + SetMenu(_nativeWindow, _menu?.Items); _exported = true; } @@ -236,6 +238,11 @@ namespace Avalonia.Native private void SetMenu(IAvnWindow avnWindow, ICollection menuItems) { + if (menuItems is null) + { + menuItems = new List(); + } + var menu = NativeMenu.GetMenu(Application.Current); if (menu != null)