diff --git a/src/OSX/Avalonia.MonoMac/ClipboardImpl.cs b/src/OSX/Avalonia.MonoMac/ClipboardImpl.cs new file mode 100644 index 0000000000..f7b98c0c1f --- /dev/null +++ b/src/OSX/Avalonia.MonoMac/ClipboardImpl.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using Avalonia.Input.Platform; +using MonoMac.AppKit; + +namespace Avalonia.MonoMac +{ + class ClipboardImpl : IClipboard + { + public Task GetTextAsync() + { + return Task.FromResult(NSPasteboard.GeneralPasteboard.GetStringForType(NSPasteboard.NSStringType)); + } + + public Task SetTextAsync(string text) + { + NSPasteboard.GeneralPasteboard.ClearContents(); + if (text != null) + NSPasteboard.GeneralPasteboard.SetStringForType(text, NSPasteboard.NSStringType); + return Task.CompletedTask; + } + + public async Task ClearAsync() + { + NSPasteboard.GeneralPasteboard.ClearContents(); + } + } +} + diff --git a/src/OSX/Avalonia.MonoMac/MonoMacPlatform.cs b/src/OSX/Avalonia.MonoMac/MonoMacPlatform.cs index a6b1f1d5b4..5907459459 100644 --- a/src/OSX/Avalonia.MonoMac/MonoMacPlatform.cs +++ b/src/OSX/Avalonia.MonoMac/MonoMacPlatform.cs @@ -3,6 +3,7 @@ using System.Threading; using Avalonia.Controls; using Avalonia.Controls.Platform; using Avalonia.Input; +using Avalonia.Input.Platform; using Avalonia.Platform; using Avalonia.Rendering; using MonoMac.AppKit; @@ -32,6 +33,7 @@ namespace Avalonia.MonoMac .Bind().ToConstant(this) .Bind().ToConstant(this) .Bind().ToSingleton() + .Bind().ToSingleton() .Bind().ToConstant(s_renderLoop) .Bind().ToConstant(PlatformThreadingInterface.Instance); }