Прозрачное текстовое поле внутри списка SwiftUI macOS

Похоже, у SwiftUI есть проблема в macOS, из-за которой вы не можете установить чистый фон для TextField внутри списка. Кто-нибудь знает обходной путь для этого?

У меня есть простой проект здесь, где вы можете воспроизвести проблему.

Я пробовал как с прозрачным фоном на TextField, так и реализовав свой собственный NSTextField со следующими свойствами (которые прозрачны вне списка):

    textField.drawsBackground = false
    textField.isBezeled = false 

Как бы вы выбрали текстовое поле и ввели в него что-нибудь, если для цвета фона установлено значение .clear? Есть ли он у Какао?

El Tomato 22.02.2024 09:49

Глядя на эту иерархию представлений, кажется, что фактическое NSTextView (которое находится внутри каждого NSTextField и доступно с помощью .currentEditor()) каким-то образом не отображается, когда поле находится внутри списка. Это похоже на то, как будто с ним обращаются как с клеткой, а не как с реальным полем.

Tritonal 23.02.2024 13:13
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не уверен, почему это происходит внутри списка, но если вы установите drawsBackground на true и фон на .clear, это будет работать так, как задумано, в вашей CustomTextField структуре:

let textField = NSTextField()

textField.backgroundColor = .clear
textField.isBezeled = false

Интересно то, что фактический NSTextView внутри метки, похоже, не подвергается воздействию иерархии представлений, когда поле находится внутри списка. Это явно накладывает строгий визуальный стиль на поле списка, то есть .drawsBackground.

Другие вопросы по теме