diff --git a/Samples/Samples/View/ClipboardPage.xaml b/Samples/Samples/View/ClipboardPage.xaml
index b23535a55..3b33c0313 100644
--- a/Samples/Samples/View/ClipboardPage.xaml
+++ b/Samples/Samples/View/ClipboardPage.xaml
@@ -17,6 +17,7 @@
+
diff --git a/Samples/Samples/ViewModel/ClipboardViewModel.cs b/Samples/Samples/ViewModel/ClipboardViewModel.cs
index 732bb5f92..fc98e31a0 100644
--- a/Samples/Samples/ViewModel/ClipboardViewModel.cs
+++ b/Samples/Samples/ViewModel/ClipboardViewModel.cs
@@ -14,12 +14,15 @@ public ClipboardViewModel()
{
CopyCommand = new Command(OnCopy);
PasteCommand = new Command(OnPaste);
+ CheckCommand = new Command(OnCheck);
}
public ICommand CopyCommand { get; }
public ICommand PasteCommand { get; }
+ public ICommand CheckCommand { get; }
+
public string FieldValue
{
get => fieldValue;
@@ -72,5 +75,10 @@ async void OnPaste()
FieldValue = text;
}
}
+
+ async void OnCheck()
+ {
+ await DisplayAlertAsync($"Has text: {Clipboard.HasText}");
+ }
}
}
diff --git a/Xamarin.Essentials/Clipboard/Clipboard.android.cs b/Xamarin.Essentials/Clipboard/Clipboard.android.cs
index cc3876e83..4a03a18ec 100644
--- a/Xamarin.Essentials/Clipboard/Clipboard.android.cs
+++ b/Xamarin.Essentials/Clipboard/Clipboard.android.cs
@@ -17,7 +17,7 @@ static Task PlatformSetTextAsync(string text)
}
static bool PlatformHasText
- => Platform.ClipboardManager.HasPrimaryClip;
+ => Platform.ClipboardManager.HasPrimaryClip && !string.IsNullOrEmpty(Platform.ClipboardManager.PrimaryClip?.GetItemAt(0)?.Text);
static Task PlatformGetTextAsync()
=> Task.FromResult(Platform.ClipboardManager.PrimaryClip?.GetItemAt(0)?.Text);
diff --git a/Xamarin.Essentials/Clipboard/Clipboard.ios.cs b/Xamarin.Essentials/Clipboard/Clipboard.ios.cs
index 5f5ccb86f..d9f597def 100644
--- a/Xamarin.Essentials/Clipboard/Clipboard.ios.cs
+++ b/Xamarin.Essentials/Clipboard/Clipboard.ios.cs
@@ -16,7 +16,7 @@ static Task PlatformSetTextAsync(string text)
static NSObject observer;
static bool PlatformHasText
- => UIPasteboard.General.HasStrings;
+ => UIPasteboard.General.HasStrings && !string.IsNullOrEmpty(UIPasteboard.General.String);
static Task PlatformGetTextAsync()
=> Task.FromResult(UIPasteboard.General.String);
diff --git a/Xamarin.Essentials/Clipboard/Clipboard.macos.cs b/Xamarin.Essentials/Clipboard/Clipboard.macos.cs
index 3519862c2..7e8b47a3e 100644
--- a/Xamarin.Essentials/Clipboard/Clipboard.macos.cs
+++ b/Xamarin.Essentials/Clipboard/Clipboard.macos.cs
@@ -22,7 +22,7 @@ static Task PlatformSetTextAsync(string text)
}
static bool PlatformHasText =>
- GetPasteboardText() != null;
+ !string.IsNullOrEmpty(GetPasteboardText());
static Task PlatformGetTextAsync()
=> Task.FromResult(GetPasteboardText());