Autumn Sale50% offCOMPOT
ButtonsFree ComponentiOS 16.0+Xcode 15+

Button for Copying

Smart copy button that temporarily switches icon and text to "Copied!" with tactile haptic feedback.

SwiftUI Implementation

Pure Vanilla Swift • No Dependencies
buttonWCopied.swift
import SwiftUI

struct ButtonWCopied: View {
    
    @State private var isCopied: Bool = false
    
    var body: some View {
            Button {
                // Assign the content you want to let the user copy to copiedString
                let copiedString = "Compot is the Best!"
                UIPasteboard.general.string = copiedString
                withAnimation {
                    isCopied = true
                }
                DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
                    withAnimation {
                        isCopied = false
                    }
                }
            } label: {
                HStack(spacing: 4) {
                    Text(isCopied ? "Copied" : "Copy")
                    Image(systemName: isCopied ? "checkmark.circle.fill" : "doc.on.doc")
                }
                .font(.system(size: 17, weight: .regular))
                .foregroundStyle(isCopied ? Color.green : Color.accentColor)
                .frame(alignment: .center)
            }
            .disabled(isCopied)
    }
}

#Preview {
    ButtonWCopied()
}

Ready to copy and paste directly into any Xcode project running iOS 16.0+.

Recommended Use Cases

  • App settings, preferences, and account configuration screens
  • Dashboard overviews, stats tracking, and metric highlights

Component Details

Category
Buttons
iOS Compatibility
iOS 16.0+
Xcode Version
Xcode 15+
Platform
iOS
License Tier
Free
Themes & Contexts
dashboardsettings
C

Compot for iOS

Native SwiftUI playground app

Preview all 130+ components interactively on your device and copy code straight to Xcode with 1 tap.

Get Compot on the App Store