📋
【Swift UI】コピペを実装する!
コピー(iOS 15.0+)
ビューに.textSelectionモディファイアを付与することで、テキストの選択が可能になります!
参考
https://developer.apple.com/documentation/swiftui/view/textselection(_:)
サンプルコード
import SwiftUI
struct ContentView: View {
var body: some View {
Text("Text Selection")
.textSelection(.enabled)
}
}
#Preview {
ContentView()
}
ペースト(iOS 16.0+)
クリップボードからアプリにアイテムを貼り付けるためには、PasteButtonを使用します。
参考
https://developer.apple.com/documentation/swiftui/pastebutton
サンプルコード
import SwiftUI
struct ContentView: View {
@State private var pastedText: String = ""
var body: some View {
Text("Text Selection")
.textSelection(.enabled)
HStack {
PasteButton(payloadType: String.self) { strings in
pastedText = strings[0]
}
.padding()
Text(pastedText)
Spacer()
}
}
}
#Preview {
ContentView()
}
.buttonBorderShape、.labelStyle、.tintモディファイアで、ボタンの形や色などを変更できます!
VStack {
HStack {
PasteButton(payloadType: String.self) { strings in }
.buttonBorderShape(.circle)
.labelStyle(.titleAndIcon)
.tint(.red)
PasteButton(payloadType: String.self) { strings in }
.buttonBorderShape(.circle)
.labelStyle(.iconOnly)
}
HStack {
PasteButton(payloadType: String.self) { strings in }
.buttonBorderShape(.roundedRectangle)
PasteButton(payloadType: String.self) { strings in }
.buttonBorderShape(.roundedRectangle)
.labelStyle(.titleOnly)
.tint(.green)
}
}
Discussion