SwiftUI Text の選択を有効にする
iOS 15 以降、SwiftUI の Text はテキスト選択をサポートしています。ユーザーが Text の内容を選択してコピーできるようになります。
textSelection モディファイア
.textSelection() で選択機能を有効にします。
Text("このテキストは選択できます")
.textSelection(.enabled)長押しするとテキストを選択でき、コピーメニューが表示されます。
複数の Text に適用
親ビューに適用すると、子の Text すべてに反映されます。
VStack(alignment: .leading, spacing: 8) {
Text("1行目のテキスト")
Text("2行目のテキスト")
Text("3行目のテキスト")
}
.textSelection(.enabled)この場合、すべての行が選択可能になります。
選択を無効にする
明示的に無効化することもできます。
VStack {
Text("選択可能")
Text("選択不可")
.textSelection(.disabled)
}
.textSelection(.enabled)親で有効にしても、個別に無効化できます。
macOS での動作
macOS ではデフォルトでテキスト選択が有効な場合があります。iOS と挙動を揃えたい場合は明示的に指定するとよいでしょう。
注意点
選択可能な Text
ユーザーがコピーしたいコンテンツ、エラーメッセージ、コード例など
選択を無効にすべき Text
ボタンのラベル、ナビゲーションタイトル、UI の説明テキストなど
長文の記事やコードスニペットを表示する場面では、.textSelection(.enabled) を付けておくとユーザビリティが向上します。












