github.com/secoba/wails/v2@v2.6.4/internal/frontend/desktop/darwin/clipboard.go (about)

     1  //go:build darwin
     2  
     3  package darwin
     4  
     5  import (
     6  	"os/exec"
     7  )
     8  
     9  func (f *Frontend) ClipboardGetText() (string, error) {
    10  	pasteCmd := exec.Command("pbpaste")
    11  	out, err := pasteCmd.Output()
    12  	if err != nil {
    13  		return "", err
    14  	}
    15  	return string(out), nil
    16  }
    17  
    18  func (f *Frontend) ClipboardSetText(text string) error {
    19  	copyCmd := exec.Command("pbcopy")
    20  	in, err := copyCmd.StdinPipe()
    21  	if err != nil {
    22  		return err
    23  	}
    24  
    25  	if err := copyCmd.Start(); err != nil {
    26  		return err
    27  	}
    28  	if _, err := in.Write([]byte(text)); err != nil {
    29  		return err
    30  	}
    31  	if err := in.Close(); err != nil {
    32  		return err
    33  	}
    34  	return copyCmd.Wait()
    35  }