From 28952a7bb0a4bea207140ac1a5bbbf92a818e48e Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Thu, 23 Oct 2025 09:22:35 -0700 Subject: [PATCH] macos: use TextEditor instead of Text for clipboard confirmation (#9324) Fixes #9322 SwiftUI `Text` has huge performance issues. On my maxed out MBP it hangs for any text more than 100KB (it took ~8s to display it!). `TextEditor` with a constant value works much better and handles scrolling for us, too! --- .../ClipboardConfirmationView.swift | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/macos/Sources/Features/ClipboardConfirmation/ClipboardConfirmationView.swift b/macos/Sources/Features/ClipboardConfirmation/ClipboardConfirmationView.swift index 1a7272e16..086dab793 100644 --- a/macos/Sources/Features/ClipboardConfirmation/ClipboardConfirmationView.swift +++ b/macos/Sources/Features/ClipboardConfirmation/ClipboardConfirmationView.swift @@ -45,19 +45,15 @@ struct ClipboardConfirmationView: View { .font(.system(size: 42)) .padding() .frame(alignment: .center) - + Text(request.text()) .frame(maxWidth: .infinity, alignment: .leading) .padding() } - - ScrollView { - Text(contents) - .textSelection(.enabled) - .font(.system(.body, design: .monospaced)) - .padding(.all, 4) - } - + + TextEditor(text: .constant(contents)) + .font(.system(.body, design: .monospaced)) + HStack { Spacer() Button(Action.text(.cancel, request)) { onCancel() }