ToolBarItem на панели навигации не меняет цвет - iOS 17 SwiftUI

В моем коде ниже я пытаюсь сделать так, чтобы оба представления с системным изображением «line.3.horizontal.circle.fill» были зелеными. Но представление как элемент панели инструментов отображается синим цветом по умолчанию. В настоящее время я могу использовать новый Xcode и работать на iOS 17.

      struct SwiftUITestView: View {
    var body: some View {
        NavigationStack{
            HStack{
                Text("test")
                Menu{
                    Button{
                        print("test")
                    }label:{
                        Text("test")
                    }
                } label:{
                    Label("Filter", systemImage: "line.3.horizontal.circle.fill")
                        .foregroundStyle(.green)
                        .frame(width: 20, height: 20)
                        
                }
                .menuActionDismissBehavior(.disabled)
                
            }
            .toolbar(content: {
                ToolbarItem(placement: .topBarTrailing) {
                            Menu{
                                Button{
                                    print("test")
                                }label:{
                                    Text("test")
                                }
                            } label:{
                                Label("Filter", systemImage: "line.3.horizontal.circle.fill")
                                    .foregroundStyle(.green)
                                    .frame(width: 20, height: 20)
                            }
                            .menuActionDismissBehavior(.disabled)
                }
            })
        }

    }

}

Я хочу, чтобы обе метки были зелеными.

1 ответ

Не используйте .accentColor, как могли предложить другие, поскольку он устарел. Вы можете использовать .tint вне определения меню следующим образом:

      ToolbarItem(placement: .topBarTrailing) {
                        Menu{
                            Button{
                                print("test")
                            }label:{
                                Text("test")
                            }
                        } label:{
                            Label("Filter", systemImage: "line.3.horizontal.circle.fill")
                                .foregroundStyle(.green)
                                .frame(width: 20, height: 20)
                        }
                        .tint(.green)
                        .menuActionDismissBehavior(.disabled)
            }

Протестировано и работает над симулятором iOS 17 в Xcode 15 Beta 2.0 (15A5161b).

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