How to add a copy button in Xcode

I would like to now how to make a button that copy a text.

Exemple : When I touch this button the text/link apple.com will be copied. The user can now paste the text/link in safari.

Answered by Claude31 in 754352022

Here is how to copy a text in pasteBoard.

This is for macOS app, but easily adapted to iOS:

You have a copy button

                Button(action: {
                    copyToClipboard()
                }) {
                    Text("\(buttonText)")  
                        .font(.system(size: 12))
                }

You declare a pasteBoard

    private let pasteboard = NSPasteboard.general

The text to copy is in a Sate var or in a computed var

    var fullText : String {
        var text = ""
        // build the text as needed
        return text
    }

And a copy func:

    func copyToClipboard() {
        
        pasteboard.declareTypes([NSPasteboard.PasteboardType.string], owner: nil)
        pasteboard.setString(fullText, forType: .string)
        
        self.buttonText = "Copied!"
    }
Accepted Answer

Here is how to copy a text in pasteBoard.

This is for macOS app, but easily adapted to iOS:

You have a copy button

                Button(action: {
                    copyToClipboard()
                }) {
                    Text("\(buttonText)")  
                        .font(.system(size: 12))
                }

You declare a pasteBoard

    private let pasteboard = NSPasteboard.general

The text to copy is in a Sate var or in a computed var

    var fullText : String {
        var text = ""
        // build the text as needed
        return text
    }

And a copy func:

    func copyToClipboard() {
        
        pasteboard.declareTypes([NSPasteboard.PasteboardType.string], owner: nil)
        pasteboard.setString(fullText, forType: .string)
        
        self.buttonText = "Copied!"
    }

Tanks it work

How to add a copy button in Xcode
 
 
Q