Как добавить кольцо фокусировки в TextEditor в SwiftUI для macOS

#macos #swiftui

#macos #swiftui

Вопрос:

В отличие от TextField, которое имеет анимированное синее кольцо фокусировки, элемент управления TextEditor его не имеет. Как это можно добавить? Оно должно выглядеть и вести себя (т.Е. Анимацию) точно так же, как в TextField, поэтому простого добавления границы недостаточно.

введите описание изображения здесь

Ответ №1:

Используя что-то вроде Introspect, вы могли бы сделать:

 struct TextEditorWithFocusRing: View {

    @Binding var text: String

    var body: some View {
        TextEditor(text: $text)
            .introspectTextView { textView in
                textView.enclosingScrollView?.focusRingType = .exterior
            }
        }
    }

}