はじめに
copyableの公式ドキュメントにあるサンプルコードを元にコピー&ペーストを制御してみます。
今回作成するサンプルアプリはコマンドのコピー(⌘ + c)とペースト(⌘ + v)でのみ反応します。
サンプルアプリ
実装
import SwiftUI
struct ContentView: View {
@State private var strings = ["Alpha", "Beta", "Gamma"]
@State private var selection: Set<String> = []
var body: some View {
List(strings, id: \.self, selection: $selection) {
Text($0)
}
// コピー
.copyable(Array(selection))
// ペースト
.pasteDestination(for: String.self) { string in
strings.append(contentsOf: string)
}
}
}
おわり
macOS13から使用できます。
コマンドにしか反応しないので、アプリに組み込むときはアナウンスがないと気づかれないかもしれないですね
公式ドキュメント