MacHelper.cs 706 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #if DESKTOP
  2. using System;
  3. using Avalonia.Platform;
  4. using MonoMac.AppKit;
  5. namespace NativeEmbedSample;
  6. internal class MacHelper
  7. {
  8. private static bool _isInitialized;
  9. public static void EnsureInitialized()
  10. {
  11. if (_isInitialized)
  12. return;
  13. _isInitialized = true;
  14. NSApplication.Init();
  15. }
  16. }
  17. internal class MacOSViewHandle : IPlatformHandle, IDisposable
  18. {
  19. private NSView _view;
  20. public MacOSViewHandle(NSView view)
  21. {
  22. _view = view;
  23. }
  24. public IntPtr Handle => _view?.Handle ?? IntPtr.Zero;
  25. public string HandleDescriptor => "NSView";
  26. public void Dispose()
  27. {
  28. _view.Dispose();
  29. _view = null;
  30. }
  31. }
  32. #endif