FREE TRIAL: Accelerate your app development career with Hacking with Swift+! >>

How to customize the submit button for TextField, SecureField, and TextEditor

Paul Hudson    @twostraws   

Updated for Xcode 13.0 beta 5

New in iOS 15

By default, TextField and SecureField show a simple “Return” button on the keyboard, but the submitLabel() modifier let us choose from a range of alternatives.

For example, if you wanted to show the localized form of “Join” for the button, you would use this:

struct ContentView: View {
    @State private var username = ""

    var body: some View {
        TextField("Username", text: $username)
            .submitLabel(.join)
    }
}

Download this as an Xcode project

A keyboard with a blue “join” button in the bottom right.

There are lots of different button options you choose from by passing different values to submitLabel():

  • continue
  • done
  • go
  • join
  • next
  • return
  • route
  • search
  • send

All those work equally well with TextField, SecureField, and TextView.

Hacking with Swift is sponsored by Raycast

SPONSORED Get stuff done faster with Raycast. The Mac app combines the Spotlight experience with third-party services. Create issues in Jira, search pull requests on GitHub, join video calls in Zoom and more. It's accessible via keyboard shortcuts and extendable with scripts. Built for macOS with Swift.

Download for free

Sponsor Hacking with Swift and reach the world's largest Swift community!

Similar solutions…

BUY OUR BOOKS
Buy Pro Swift Buy Swift Design Patterns Buy Testing Swift Buy Hacking with iOS Buy Swift Coding Challenges Buy Swift on Sundays Volume One Buy Server-Side Swift (Vapor Edition) Buy Advanced iOS Volume One Buy Advanced iOS Volume Two Buy Advanced iOS Volume Three Buy Hacking with watchOS Buy Hacking with tvOS Buy Hacking with macOS Buy Dive Into SpriteKit Buy Swift in Sixty Seconds Buy Objective-C for Swift Developers Buy Server-Side Swift (Kitura Edition) Buy Beyond Code

Was this page useful? Let us know!

 
Unknown user

You are not logged in

Log in or create account
 

Link copied to your pasteboard.