import SwiftUI
struct 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:String
var 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 = true
view.layer?.backgroundColor = NSColor.blue.cgColor
return view
}
func updateNSView(_ nsView: NSView, context: Context) {
}
}
struct visualEffectView: NSViewRepresentable {
func makeNSView(context: Context) -> NSVisualEffectView {
let view = NSVisualEffectView()
view.blendingMode = .behindWindow
return view
}
func updateNSView(_ nsView: NSVisualEffectView, context: Context) {
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Mac OS Swift UI双栏搜索窗口
于 2022-03-22 15:44:51 首次发布