{"id":240189,"date":"2025-05-13T18:05:05","date_gmt":"2025-05-13T18:05:05","guid":{"rendered":"https:\/\/peraltafinancing.com\/apple-2\/michael-tsai-blog-pasteboard-privacy-preview-in-macos-15-4\/"},"modified":"2025-05-13T18:05:05","modified_gmt":"2025-05-13T18:05:05","slug":"michael-tsai-blog-pasteboard-privacy-preview-in-macos-15-4","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=240189","title":{"rendered":"Michael Tsai &#8211; Blog &#8211; Pasteboard Privacy Preview in macOS 15.4"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p><a href=\"https:\/\/developer.apple.com\/documentation\/updates\/appkit#macOS-pasteboard-privacy\">Apple<\/a> (via <a href=\"https:\/\/tech.lgbt\/@jnadeau\/114479076464726578\">Jeff Nadeau<\/a>):<\/p>\n<blockquote cite=\"https:\/\/developer.apple.com\/documentation\/updates\/appkit#macOS-pasteboard-privacy\">\n<p>Prepare your app for an upcoming feature in macOS that alerts a person using a device when your app programmatically reads the general pasteboard. The system shows the alert only if the pasteboard access wasn\u2019t a result of someone\u2019s input on a UI element that the system considers paste-related. This behavior is similar to how <a href=\"https:\/\/developer.apple.com\/documentation\/UIKit\/UIPasteboard\"><code>UIPasteboard<\/code><\/a> behaves in iOS. New <code>detect<\/code> methods in <a href=\"https:\/\/developer.apple.com\/documentation\/AppKit\/NSPasteboard\"><code>NSPasteboard<\/code><\/a> and <a href=\"https:\/\/developer.apple.com\/documentation\/AppKit\/NSPasteboardItem\"><code>NSPasteboardItem<\/code><\/a> make it possible for an app to examine the kinds of data on the pasteboard without actually reading them and showing the alert. <a href=\"https:\/\/developer.apple.com\/documentation\/AppKit\/NSPasteboard\"><code>NSPasteboard<\/code><\/a> also adds an <a href=\"https:\/\/developer.apple.com\/documentation\/AppKit\/NSPasteboard\/accessBehavior-86972\"><code>accessBehavior<\/code><\/a> property to determine if programmatic pasteboard access is always allowed, never allowed, or if it prompts an alert requesting permission. You can adopt these APIs ahead of the change, and set a user default to test the new behavior on your Mac. To do so, launch Terminal and enter the command <code>defaults write <your_app_bundle_id> EnablePasteboardPrivacyDeveloperPreview -bool yes<\/your_app_bundle_id><\/code> to enable the behavior for your app.<\/p>\n<\/blockquote>\n<p>The Swift and Objective-C APIs are different.<\/p>\n<p><a href=\"https:\/\/mastodon.social\/@arroz\/114482298970120101\">Miguel Arroz<\/a>:<\/p>\n<blockquote cite=\"https:\/\/mastodon.social\/@arroz\/114482298970120101\">\n<p>Long ago when I was still at Apple I filed a radar suggesting something like this when I found out the Facebook iOS app would look into the pasteboard as soon as it was brought forward and suggest posting any URL the user might have there.<\/p>\n<p>This is incredibly hard to get right since there\u2019s no straightforward way for the OS to know if a paste op is legit.<\/p>\n<\/blockquote>\n<p>Previously:<\/p>\n<p class=\"tags\"><a rel=\"tag\" href=\"https:\/\/mjtsai.com\/blog\/tag\/esoteric-preferences\/\">Esoteric Preferences<\/a> <a rel=\"tag\" href=\"https:\/\/mjtsai.com\/blog\/tag\/mac\/\">Mac<\/a> <a rel=\"tag\" href=\"https:\/\/mjtsai.com\/blog\/tag\/macos-15-sequoia\/\">macOS 15 Sequoia<\/a> <a rel=\"tag\" href=\"https:\/\/mjtsai.com\/blog\/tag\/objective-c\/\">Objective-C<\/a> <a rel=\"tag\" href=\"https:\/\/mjtsai.com\/blog\/tag\/pasteboard\/\">Pasteboard<\/a> <a rel=\"tag\" href=\"https:\/\/mjtsai.com\/blog\/tag\/privacy\/\">Privacy<\/a> <a rel=\"tag\" href=\"https:\/\/mjtsai.com\/blog\/tag\/programming\/\">Programming<\/a> <a rel=\"tag\" href=\"https:\/\/mjtsai.com\/blog\/tag\/swift-programming-language\/\">Swift Programming Language<\/a><\/p>\n<h2><a id=\"respond\"><\/a><br \/>\n12 Comments<br \/>\n <\/h2>\n<hr class=\"com-hr\" \/>\n<hr class=\"com-hr\" \/>\n<hr class=\"com-hr\" \/>\n<hr class=\"com-hr\" \/>\n<hr class=\"com-hr\" \/>\n<hr class=\"com-hr\" \/>\n<hr class=\"com-hr\" \/>\n<hr class=\"com-hr\" \/>\n<hr class=\"com-hr\" \/>\n<hr class=\"com-hr\" \/>\n<hr class=\"com-hr\" \/>\n<hr class=\"com-hr\" \/>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Apple (via Jeff Nadeau): Prepare your app for an upcoming feature in macOS that alerts a person using a device when your app programmatically reads the general pasteboard. The system shows the alert only if the pasteboard access wasn\u2019t a result of someone\u2019s input on a UI element that the system considers paste-related. This behavior [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11768],"tags":[3767,16746,1823,88412,5079,13325,17088],"dealstore":[],"offerexpiration":[],"class_list":["post-240189","post","type-post","status-publish","format-standard","hentry","category-apple-2","tag-blog","tag-macos","tag-michael","tag-pasteboard","tag-preview","tag-privacy","tag-tsai"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Michael Tsai - Blog - Pasteboard Privacy Preview in macOS 15.4 - Som2ny Network<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fivemor.com\/?p=240189\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Michael Tsai - Blog - Pasteboard Privacy Preview in macOS 15.4 - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"Apple (via Jeff Nadeau): Prepare your app for an upcoming feature in macOS that alerts a person using a device when your app programmatically reads the general pasteboard. The system shows the alert only if the pasteboard access wasn\u2019t a result of someone\u2019s input on a UI element that the system considers paste-related. This behavior [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=240189\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-13T18:05:05+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=240189#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=240189\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"Michael Tsai &#8211; Blog &#8211; Pasteboard Privacy Preview in macOS 15.4\",\"datePublished\":\"2025-05-13T18:05:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=240189\"},\"wordCount\":257,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"keywords\":[\"Blog\",\"macos\",\"Michael\",\"Pasteboard\",\"Preview\",\"privacy\",\"Tsai\"],\"articleSection\":[\"Apple\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=240189#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=240189\",\"url\":\"https:\/\/fivemor.com\/?p=240189\",\"name\":\"Michael Tsai - Blog - Pasteboard Privacy Preview in macOS 15.4 - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"datePublished\":\"2025-05-13T18:05:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=240189#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=240189\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=240189#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Michael Tsai &#8211; Blog &#8211; Pasteboard Privacy Preview in macOS 15.4\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fivemor.com\/#website\",\"url\":\"https:\/\/fivemor.com\/\",\"name\":\"Som2ny Network\",\"description\":\"Daily Deals\",\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fivemor.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fivemor.com\/#organization\",\"name\":\"Som2ny Network\",\"url\":\"https:\/\/fivemor.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"width\":300,\"height\":86,\"caption\":\"Som2ny Network\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/fivemor.com\"],\"url\":\"https:\/\/fivemor.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Michael Tsai - Blog - Pasteboard Privacy Preview in macOS 15.4 - Som2ny Network","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fivemor.com\/?p=240189","og_locale":"en_US","og_type":"article","og_title":"Michael Tsai - Blog - Pasteboard Privacy Preview in macOS 15.4 - Som2ny Network","og_description":"Apple (via Jeff Nadeau): Prepare your app for an upcoming feature in macOS that alerts a person using a device when your app programmatically reads the general pasteboard. The system shows the alert only if the pasteboard access wasn\u2019t a result of someone\u2019s input on a UI element that the system considers paste-related. This behavior [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=240189","og_site_name":"Som2ny Network","article_published_time":"2025-05-13T18:05:05+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=240189#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=240189"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"Michael Tsai &#8211; Blog &#8211; Pasteboard Privacy Preview in macOS 15.4","datePublished":"2025-05-13T18:05:05+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=240189"},"wordCount":257,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"keywords":["Blog","macos","Michael","Pasteboard","Preview","privacy","Tsai"],"articleSection":["Apple"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=240189#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=240189","url":"https:\/\/fivemor.com\/?p=240189","name":"Michael Tsai - Blog - Pasteboard Privacy Preview in macOS 15.4 - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"datePublished":"2025-05-13T18:05:05+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=240189#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=240189"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=240189#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"Michael Tsai &#8211; Blog &#8211; Pasteboard Privacy Preview in macOS 15.4"}]},{"@type":"WebSite","@id":"https:\/\/fivemor.com\/#website","url":"https:\/\/fivemor.com\/","name":"Som2ny Network","description":"Daily Deals","publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fivemor.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fivemor.com\/#organization","name":"Som2ny Network","url":"https:\/\/fivemor.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","width":300,"height":86,"caption":"Som2ny Network"},"image":{"@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","caption":"admin"},"sameAs":["https:\/\/fivemor.com"],"url":"https:\/\/fivemor.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/240189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=240189"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/240189\/revisions"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=240189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=240189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=240189"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=240189"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=240189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}