Schowek vs pasteboard: terminologia macOS wyjaśniona

Na Macu „schowek” (clipboard) i „pasteboard” to to samo, tylko widziane na różnych warstwach systemu. „Schowek” to potoczna nazwa miejsca, do którego trafiają skopiowane dane. „Pasteboard” to nazwa, której używają frameworki, API i narzędzia Terminala od Apple dla systemowej usługi działającej pod spodem (NSPasteboard, pbcopy, pbpaste). Kiedy naciskasz ⌘C, zapełniasz tak zwany general pasteboard.

Krótka odpowiedź

  • Schowek (clipboard) to używana na co dzień, wieloplatformowa nazwa miejsca, w którym ląduje to, co skopiujesz.
  • Pasteboard to termin Apple dla programistów. To usługa systemowa, która przechowuje dane w kilku formatach naraz i może mieć kilka nazwanych instancji.
  • General pasteboard to ten, z którego korzystają ⌘C, ⌘X i ⌘V. Większość ludzi właśnie to ma na myśli, mówiąc „schowek”.
  • Pasteboard ≠ historia schowka. macOS trzyma tylko bieżącą zawartość, więc do historii potrzebny jest menedżer schowka (jak Maccy) albo, w nowszych wersjach macOS, historia schowka w Spotlight.

Dlaczego macOS używa dwóch słów na to samo?

Podział ma historyczne korzenie i w dużej mierze wziął się z przypadku. „Clipboard” pochodzi z wczesnej tradycji graficznych interfejsów. To metafora, której używały Lisa i pierwszy Macintosh dla tymczasowego miejsca na wycięte i skopiowane elementy, a potem przejęły ją Windows, pulpity Linuksa i większość innych systemów.

„Pasteboard” trafił do macOS przez NeXTSTEP, system, który Apple kupiło pod koniec lat 90. i na którym zbudowało Mac OS X. Frameworki NeXT korzystały z metafory wklejania, a gdy przekształciły się w Cocoa, nazwa została. Stąd też klasa nazywa się NSPasteboard: prefiks NS to pozostałość po NeXTSTEP.

Nikt nie zmienił nazwy tego pojęcia dla użytkowników, więc interfejs i dokumentacja Apple używają obu słów, zależnie od tego, na jaką warstwę patrzysz.

Gdzie spotkasz które określenie?

WarstwaTermin, który zobaczyszPrzykład
Codzienne użycie, poradniki, aplikacje firm trzecichSchowek (clipboard)„Kopiuj do schowka”, „menedżer schowka”
API AppKit (macOS)PasteboardNSPasteboard.general
API UIKit (iOS/iPadOS)PasteboardUIPasteboard.general
Polecenia TerminalaPasteboardpbcopy, pbpaste („pb” = pasteboard)
AppleScriptClipboardthe clipboard, clipboard info
Aplikacja SkrótySchowek (clipboard)Akcja „Pobierz schowek” (Get Clipboard)
Przewodniki programistyczne ApplePasteboard„Pasteboard Programming Guide”

Jeśli czytasz kod albo strony man, spodziewaj się słowa „pasteboard”. Jeśli czytasz poradnik dla zwykłych użytkowników, spodziewaj się „schowka”. Oba określenia opisują ten sam mechanizm.

Czym dokładnie jest pasteboard?

Pasteboard to ogólnosystemowy, współdzielony magazyn danych, przez który aplikacje wymieniają się informacjami. Przy kopiowaniu i wklejaniu aplikacje nie rozmawiają ze sobą bezpośrednio. Aplikacja źródłowa umieszcza dane na pasteboardzie, a aplikacja docelowa odczytuje je w momencie wklejenia.

Przechowuje nie tylko tekst

Pojedyncza operacja kopiowania może umieścić na pasteboardzie kilka reprezentacji tego samego elementu. Skopiuj sformatowany akapit ze strony WWW, a pasteboard może zawierać jednocześnie zwykły tekst, RTF i HTML. Aplikacja, do której wklejasz, wybiera najbogatszy format, jaki rozumie. Dlatego wklejenie do pola tekstowego daje czysty tekst, a wklejenie do edytora z formatowaniem zachowuje styl.

Typy danych identyfikowane są przez uniform type identifiers, takie jak public.utf8-plain-text, public.html czy public.png. W Swifcie występują jako stałe typu .string, .html i .png.

Pasteboardów jest więcej niż jeden

General pasteboard to tylko jeden z kilku nazwanych pasteboardów. To największa praktyczna różnica między oboma słowami: „schowek” sugeruje jedną przegródkę, a „pasteboard” to cała rodzina.

PasteboardDo czego służy
General⌘C / ⌘X / ⌘V. Dla niemal wszystkich to właśnie „schowek”.
FindUdostępnia bieżącą frazę wyszukiwania między aplikacjami (⌘E, „Użyj zaznaczenia do wyszukiwania”).
DragPrzenosi dane podczas przeciągania i upuszczania.
FontAtrybuty czcionki, używane m.in. przez polecenia kopiowania stylu.
RulerAtrybuty formatowania akapitu i linijki.

Aplikacje mogą też tworzyć własne, prywatne nazwane pasteboardy. Nigdy nie wpływają one na to, co widzisz jako „schowek”.

Licznik zmian

Każdy pasteboard ma liczbę całkowitą changeCount, która rośnie za każdym razem, gdy jego zawartość zostaje zastąpiona. macOS nie wysyła przy tym żadnego powiadomienia. Aplikacje, które chcą wiedzieć o nowych skopiowanych elementach, w tym menedżery schowka, muszą okresowo sprawdzać licznik i odczytywać zawartość, gdy się zmieni. Jeśli zastanawiałeś się, jak menedżer schowka „zauważa” kopiowanie, to jest ten mechanizm.

Zobacz to na własne oczy w Terminalu

Najszybszy sposób, żeby poczuć różnicę, to użyć narzędzi wiersza poleceń, które odwołują się do pasteboardu bezpośrednio.

# Umieść tekst na general pasteboard echo "hello from the pasteboard" | pbcopy
Odczytaj go z powrotem

pbpaste

Policz słowa w tym, co ostatnio skopiowano

pbpaste | wc -w

Skopiuj zawartość pliku bez otwierania go

pbcopy < notes.txt

Teraz wypróbuj nazwane pasteboardy. Zaznacz słowo w dowolnej aplikacji, naciśnij ⌘E, a potem uruchom:

pbpaste -pboard find

Dostaniesz z powrotem zaznaczone słowo, a to, co skopiowałeś przez ⌘C, pozostanie nietknięte. To drugi pasteboard, działający niezależnie od general. Opcja -pboard przyjmuje wartości general, find, font i ruler; szczegóły znajdziesz w man pbpaste.

Żeby sprawdzić, jakie formaty znajdują się teraz na general pasteboard, AppleScript używa słowa „clipboard":

osascript -e 'clipboard info'

Wynik zawiera kody typów wraz z rozmiarami w bajtach, a po skopiowaniu sformatowanego tekstu z przeglądarki zwykle zobaczysz kilka wpisów. Dokładne kody zależą od aplikacji źródłowej i wersji macOS.

Czy pasteboard to to samo co historia schowka?

Nie. Pasteboard przechowuje tylko to, co jest na nim w tej chwili. Skopiujesz coś nowego, a poprzednia zawartość zostaje zastąpiona. Usługa systemowa nie pamięta wcześniejszych elementów.

Ostatnie wydania macOS zaczęły tę granicę zacierać. Spotlight w macOS Tahoe dostał funkcję historii schowka, która przez ograniczony czas przechowuje ostatnie elementy . Dedykowany menedżer schowka nadal idzie dalej: trzyma historię tak długo, jak zdecydujesz, oferuje wyszukiwanie, przypinanie i wykluczenia dla wybranych aplikacji, a do tego nie jest związany ze Spotlight.

Maccy wybiera podejście dedykowanego menedżera: obserwuje general pasteboard, zapisuje każdy nowy element w lokalnym magazynie na Twoim Macu i pozwala otworzyć listę skrótem klawiszowym (domyślnie ⇧⌘C ) oraz ją przeszukiwać. Jest open source i trzyma dane lokalnie. Nie czyta prywatnych pasteboardów aplikacji, tylko ten general.

A co z Uniwersalnym schowkiem?

Uniwersalny schowek (Universal Clipboard) to funkcja Continuity, która pozwala skopiować coś na jednym urządzeniu Apple i wkleić na innym, znajdującym się w pobliżu. Wymaga tego samego Apple ID oraz włączonych Wi-Fi, Bluetooth i Handoff na obu urządzeniach. Technicznie nie zastępuje on pasteboardu. Lokalny general pasteboard otrzymuje element z drugiego urządzenia i od tej pory zachowuje się jak każda inna kopia.

Dlaczego to rozróżnienie ma znaczenie dla prywatności

Ponieważ general pasteboard jest współdzielony, każda aplikacja, która ma prawo go odczytać, widzi to, co skopiowałeś, łącznie z hasłem właśnie skopiowanym z menedżera haseł. Wokół tego problemu wyrosły dwa rozwiązania.

  • Typy znacznikowe. Menedżery haseł i niektóre inne aplikacje oznaczają swoje kopie specjalnymi typami, takimi jak org.nspasteboard.ConcealedType i org.nspasteboard.TransientType. To konwencja społeczności, opisana na nspasteboard.org. Poprawnie działające menedżery schowka pomijają elementy z takimi znacznikami. Maccy robi to domyślnie , a własne ignorowane typy lub aplikacje możesz dodać w ustawieniach Ignore .
  • Kontrola dostępu na poziomie systemu. Apple stopniowo wprowadza powiadomienia i monity, gdy aplikacje programowo odczytują pasteboard, zaczynając od wersji podglądowej dla deweloperów w macOS 15.4 . Jeśli menedżer schowka prosi o zgodę albo widzisz komunikat o dostępie do pasteboardu, to jest tego powód.

Żaden z tych mechanizmów nie sprawia, że pasteboard jest z założenia prywatny. To konwencje i uprawnienia nałożone na współdzielony magazyn.

Częste nieporozumienia, wyjaśnione

„Czy pasteboard to ukryty, drugi schowek?"
Nie. General pasteboard jest schowkiem. Pozostałe nazwane pasteboardy (find, drag, font, ruler) to osobne kanały specjalnego przeznaczenia.
„Czy ⌘C zapisuje dane do pliku, który mogę otworzyć?"
Nie jako plik widoczny dla użytkownika. Zawartość żyje w pamięci zarządzanej przez usługę pasteboard. Duże elementy lub pliki są często przekazywane jako odwołania, np. adresy URL plików, a nie pełne kopie.
„Dlaczego wklejanie czasem daje inne formatowanie w różnych aplikacjach?"
Przez wiele reprezentacji. To aplikacja docelowa wybiera, którą odczytać. W aplikacjach, które to obsługują, użyj ⌥⇧⌘V (Wklej i dopasuj styl), aby wymusić czysty styl.
„Czy pbcopy dotyczy schowka, czy pasteboardu?"
„pb" oznacza pasteboard, ale domyślnie zapisuje do general pasteboard, więc w praktyce to schowek.

Którego słowa używać?

Pisząc dla użytkowników, używaj „schowka", a pisząc lub czytając kod, strony man albo dokumentację Apple dla deweloperów, używaj „pasteboard". Pomylenie ich jest nieszkodliwe. Kłopoty zaczynają się wtedy, gdy traktujesz je jak dwie różne rzeczy albo sądzisz, że macOS sam z siebie prowadzi historię.

Jeśli chcesz zobaczyć to w praktyce, zainstaluj menedżer schowka i obserwuj, co przechwytuje, gdy kopiujesz z różnych aplikacji. Wielofomatowość i zliczanie zmian stają się wtedy bardzo konkretne. Maccy app jest darmowy i open source, jeśli chcesz jakiś wypróbować. Który trik z Terminalem wyjaśnić następnym razem: skrypty z użyciem pbcopy czy sprawdzanie, co dana aplikacja umieszcza na pasteboardzie?


Pakiet SEO

1. Propozycje tytułów

  1. Schowek vs pasteboard: terminologia macOS wyjaśniona (54 znaki)
  2. Schowek czy pasteboard? Co naprawdę znaczy w macOS (50 znaków)
  3. Pasteboard a schowek w macOS: to to samo? (42 znaki)

2. Meta description

Schowek i pasteboard to na Macu to samo, tylko na różnych warstwach. Poznaj NSPasteboard, pbcopy i nazwane pasteboardy na przykładach z Terminala. (ok. 152 znaki)

3. Slug URL

/schowek-vs-pasteboard-macos-terminologia

4. Słowa kluczowe

Główne: schowek vs pasteboard

Dodatkowe / semantyczne: pasteboard macOS, NSPasteboard, pbcopy i pbpaste, general pasteboard, czym jest pasteboard na Macu, Uniwersalny schowek, historia schowka macOS, nazwane pasteboardy, changeCount, menedżer schowka na Maca

Jeśli chcesz spróbować sam, maccy.at to darmowy menedżer schowka o otwartym kodzie dla systemu macOS.