Кнопка macOS SwiftUI цвет переднего плана меняется после изменения внешнего вида темного/светлого

0

Вопрос

Поэтому я запускаю приведенный ниже код на игровой площадке и вижу 2 кнопки при появлении света, затем переключаюсь в темный режим. Обе кнопки обновляют цвет переднего плана в рамках SwiftUI до не совсем белого. Затем я нажимаю на одну кнопку, цвет переднего плана на другой кнопке(кнопках) меняется на серый. Смотрите видео, прикрепленное ниже. Использование Xcode 13.1


import SwiftUI
import PlaygroundSupport

struct ContentView: View {
    var body: some View {
        VStack {
            HStack {
                Text("Current")
                    .font(.subheadline)
                    .fontWeight(.semibold)
                    .foregroundColor(.gray)
                    .frame(maxWidth: .infinity, alignment: .leading)
                Label("43.672490, -79.388932", systemImage: "location")
                    .frame(width: 175, alignment: .trailing)
            }
            HStack {
                Button {} label: {
                    Text("
button swiftui
2021-11-22 22:03:17
1

Лучший ответ

0

Цвет переднего плана, действительно, кажется, неправильно настраивается между светлым и темным режимами. Тем не менее, я смог исправить это, используя цвет, который учитывает различные внешние виды, добавив его в качестве .foregroundColor() на кнопках:

struct ContentView: View {
    let buttonTextColor = Color(.secondaryLabelColor)
    var body: some View {
        VStack {
            HStack {
                Text("Current")
                    .font(.subheadline)
                    .fontWeight(.semibold)
                    .foregroundColor(.gray)
                    .frame(maxWidth: .infinity, alignment: .leading)
                Label("43.672490, -79.388932", systemImage: "location")
                    .frame(width: 175, alignment: .trailing)
            }
            HStack {
                Button {} label: {
                    Text("
2021-11-27 23:12:51

Это может быть так, как я пытаюсь воспроизвести, но я не вижу такого поведения в macOS Monterey 12.0.1, чего бы это ни стоило.
Charles A.

Но обновляет ли он onTap. Таким образом, в светлом режиме цвет метки переднего плана черный, а в режиме onTap он становится белым, а в темном режиме цвет метки переднего плана не белый, а в режиме onTap он остается не белым. Вышеупомянутое.Решение forgroundColor не учитывает изменение onTap. Чтобы попробовать разницу, откройте раздел "Система" > "Безопасность и конфиденциальность", нажмите на значок блокировки (слева внизу) и понаблюдайте за поведением кнопки "Отмена". Спасибо!
swifty-george

Ответ обновлен.
Yrb

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................