Fixed clipboard tests on iOS

This commit is contained in:
Sam Lantinga
2025-09-22 09:06:42 -07:00
parent a662d13f73
commit 7563a3e17d
2 changed files with 16 additions and 4 deletions

View File

@@ -33,7 +33,14 @@ bool UIKit_SetClipboardText(SDL_VideoDevice *_this, const char *text)
return SDL_SetError("The clipboard is not available on tvOS");
#else
@autoreleasepool {
[UIPasteboard generalPasteboard].string = @(text);
SDL_UIKitVideoData *data = (__bridge SDL_UIKitVideoData *)_this->internal;
data.setting_clipboard = true;
if (text && *text) {
[UIPasteboard generalPasteboard].string = @(text);
} else {
[UIPasteboard generalPasteboard].items = nil;
}
data.setting_clipboard = false;
return true;
}
#endif
@@ -61,7 +68,7 @@ bool UIKit_HasClipboardText(SDL_VideoDevice *_this)
{
@autoreleasepool {
#ifndef SDL_PLATFORM_TVOS
if ([UIPasteboard generalPasteboard].string != nil) {
if ([UIPasteboard generalPasteboard].hasStrings) {
return true;
}
#endif
@@ -80,11 +87,14 @@ void UIKit_InitClipboard(SDL_VideoDevice *_this)
object:nil
queue:nil
usingBlock:^(NSNotification *note) {
// TODO: compute mime types
SDL_SendClipboardUpdate(false, NULL, 0);
if (!data.setting_clipboard) {
// TODO: compute mime types
SDL_SendClipboardUpdate(false, NULL, 0);
}
}];
data.pasteboardObserver = observer;
data.setting_clipboard = false;
}
#endif
}

View File

@@ -31,6 +31,8 @@
@property(nonatomic, assign) id pasteboardObserver;
@property(nonatomic, assign) bool setting_clipboard;
@end
#ifdef SDL_PLATFORM_VISIONOS