我想在我的 macOS 项目中使用 SF Symbols。如何实施?
Button(action: {}) {
Image(systemName: "star") //Error: 'init(systemName:)' is unavailable in macOS
}
Run Code Online (Sandbox Code Playgroud) 我需要取消所有嵌套任务我尝试取消其父级但没有任何反应所有嵌套任务继续运行。
private var observationTask: Task<Void, Never>?
...
observationTask = Task {
Task {
for await users in list.$users.values {
updateTableView(withUsers: users)
}
}
Task {
for await users in list.$users.values {
updateTableView(withUsers: users)
}
}
}
....
observationTask.cancel()
Run Code Online (Sandbox Code Playgroud)
}
我不明白如何在 macOS 上删除或移动项目。我需要用鼠标执行什么操作来触发onDelete或onMove事件?
@State var wishList = ["Item 1", "Item 2", "Item3"]
var body: some View {
List {
ForEach(wishList, id:\.self) { item in
Button(action: {
}) {
Text(item)
}
}
.onDelete { offsets in
}
.onMove { source, target in
}
}
}
Run Code Online (Sandbox Code Playgroud) 当我输入时遇到问题WKWebView,NSViewRepresentable然后我的应用程序显示黑屏而不是加载的网页。
import SwiftUI
import WebKit
struct TestView : NSViewRepresentable {
func makeNSView(context: Context) -> WKWebView {
let view = WKWebView()
if let url = URL(string: "https://www.google.com/") {
view.load(URLRequest(url: url))
}
return view
}
func updateNSView(_ view: WKWebView, context: Context) {
}
}
struct ContentView: View {
var body: some View {
TestView()
.frame(maxWidth: .infinity, maxHeight: .infinity)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Run Code Online (Sandbox Code Playgroud)
我将 SF 符号导出为 pdf 图标,并将默认白色更改为黑色。我想将黑色改回白色。我发现这样.colorInvert做可以,但是当我放入Image它Button时又变黑了。
import SwiftUI
#if os(macOS)
extension Image {
static func sfSymbol(_ systemName: String) -> some View {
Image(systemName)
.resizable()
.aspectRatio(contentMode: .fit)
.colorInvert()
.frame(height: 20)
}
}
struct ImageView_Previews: PreviewProvider {
static var previews: some View {
Group {
Image.sfSymbol("square.and.arrow.down.fill")
Button(action: {}, label: { Image.sfSymbol("square.and.arrow.down.fill") })
}
}
}
#endif
Run Code Online (Sandbox Code Playgroud)
我想通过单击鼠标左键来显示 contextMenu 吗?如何在 SwiftUI 中手动显示视图?
Image(systemName: "book")
.contextMenu {
Text("something1")
Text("something2")
Text("something3")
}
Run Code Online (Sandbox Code Playgroud) 我创建了 macOS 项目,并尝试使 UIViewRepresentable 成为可能,但出现此错误。
import SwiftUI
struct WebView: UIViewRepresentable { //Error: Use of undeclared type 'UIViewRepresentable'
}
Run Code Online (Sandbox Code Playgroud)
我可以用它做什么,或者如何为 macOS 制作自己的 UIViewRepresentable 以在我的项目中使用 WKWebView?
struct WebView: UIViewRepresentable {
func makeUIView(context: Context) -> WKWebView {
WKWebView()
}
func updateUIView(_ uiView: WKWebView, context: Context) {
}
}
Run Code Online (Sandbox Code Playgroud)