英語607877 views
ヒストリア284143 views
いろは2986023 views
MathPython491378 views
雑学1472593 views
高校化学2913383 views
高校物理158224 views
世界の国560595 views
教育148875 views
高校倫理1433119 views
Help
Tools

English

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) を付けておくとユーザビリティが向上します。