当前位置: 代码迷 >> 综合 >> Mac OS Swift UI双栏搜索窗口
  详细解决方案

Mac OS Swift UI双栏搜索窗口

热度:27   发布时间:2023-12-08 20:36:50.0

import SwiftUIstruct ContentView: View {var body: some View {HStack{List{Label("测试",systemImage:"book")Label("测试",systemImage:"book")Label("测试",systemImage:"book")}.listStyle(InsetListStyle()).frame(maxWidth: 100)VStack{HomeView()}}
//        .ignoresSafeArea(.all, edges: .all).frame(minWidth: 600, minHeight: 400, alignment: .center)
//        .background(Color.white.opacity(0.8)).background(CustomView().opacity(1))}}struct HomeView: View {@State var searchValue = ""var body: some View{SearchBar(search: self.$searchValue).padding()VStack{Spacer()Text("搜索内容为:\(self.searchValue)")Spacer()}Spacer()}
}struct SearchBar:View{@Binding var search:Stringvar body: some View{VStack{HStack(spacing: 10){HStack(spacing: 15){Image(systemName: "magnifyingglass").foregroundColor(.gray)TextField("Search", text: $search).textFieldStyle(PlainTextFieldStyle())}.padding(.vertical,10).padding(.horizontal).background(visualEffectView()).cornerRadius(10)Button(action: {print("点击了第一个按钮")}, label: {Image(systemName: "slider.vertical.1").foregroundColor(.black).padding(10).background(Color.white).cornerRadius(10).shadow(color: Color.black.opacity(0.1), radius: 5, x: 5, y: 5).shadow(color: Color.black.opacity(0.1), radius: 5, x: -5, y: -5)}).buttonStyle(PlainButtonStyle())}}}
}struct CustomView: NSViewRepresentable {func makeNSView(context: Context) -> NSView {let view = NSView()view.wantsLayer = trueview.layer?.backgroundColor = NSColor.blue.cgColorreturn view}func updateNSView(_ nsView:  NSView, context: Context) {}
}struct visualEffectView: NSViewRepresentable {func makeNSView(context: Context) -> NSVisualEffectView {let view = NSVisualEffectView()view.blendingMode = .behindWindowreturn view}func updateNSView(_ nsView: NSVisualEffectView, context: Context) {}
}struct ContentView_Previews: PreviewProvider {static var previews: some View {ContentView()}
}