NEW BOOK! Swift Gems: 100+ tips to take your Swift code to the next level. Learn more ...NEW BOOK! Swift Gems:100+ advanced Swift tips. Lear more...
Quick Tip Icon
Quick Tip

Enable text selection for non-editable text

To enable text selection for SwiftUI Text views we can use textSelection() modifier and set it to enabled.

This modifier can be set on each Text view individually or on a hierarchy of views to enable text selection for all Text in the hierarchy.

// Contents of the Text view
// will be selectable
Text("Hello World!")
    .textSelection(.enabled)

// Contents of each Text view
// will be selectable individually
VStack {
    Text("Text 1")
    Text("Text 2")
}
.textSelection(.enabled)

Even when we set .textSelection(.enabled) on a hierarchy of views, each Text view will still be individually selectable. There is no way to select contents of multiple Text views at the same time.

On macOS users can select a range of text using the mouse. On iOS it's only possible to select the entire contents of a Text view by long pressing on it and summoning the system menu with context appropriate actions such as Copy and Share.

Swift Gems by Natalia Panferova book coverSwift Gems by Natalia Panferova book cover

Check out our new book!

Swift Gems

100+ tips to take your Swift code to the next level

Swift Gems

100+ tips to take your Swift code to the next level

  • Advanced Swift techniques for experienced developers bypassing basic tutorials
  • Curated, actionable tips ready for immediate integration into any Swift project
  • Strategies to improve code quality, structure, and performance across all platforms
  • Practical Swift insights from years of development, applicable from iOS to server-side Swift