MacHelper.cs 783 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. using Avalonia.Platform;
  3. using MonoMac.AppKit;
  4. namespace NativeEmbedSample
  5. {
  6. public 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. 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. }