相关疑难解决方法(0)

如何使TextField成为第一响应者?

这是我的代码...

struct ContentView : View {
    @State var showingTextField = false
    @State var text = ""
    var body: some View {
        return VStack {
            if showingTextField {
                TextField($text)
            }
            Button(action: {
                self.showingTextField.toggle()
            }) {
                Text ("Show")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要的是当文本字段变为可见时,使文本字段成为第一响应者(即,获得焦点并弹出键盘)。

swift swiftui

31
推荐指数
10
解决办法
3078
查看次数

在 SwiftUI 中加载异步请求时显示活动指示器

我有一个显示从 API 获取数据的列表的基本视图。我想在从 API 检索数据时实现一个活动指示器。在 MVC 中,我们可以使用委托和协议,让视图控制器继承协议,在模型完成获取数据后,我们调用委托告诉视图控制器数据已完成检索(现在隐藏活动指示器等.) 如何在 SwiftUI 中实现类似的东西,它是 MVVM 风格?

我已经尝试从这个问题实现一个活动指示器,我只是不知道如何以及何时停止它:SwiftUI 中的活动指示器

我的 SourcesViewModel(它从 newsapi.org 获取新闻文章来源)

import UIKit

class SourcesViewModel: Identifiable {

    let id = UUID()

    let source: Sources

    init(source: Sources) {
        self.source = source
    }

    var name: String {
        return self.source.sourceName
    }

    var description: String {
        return self.source.sourceDescription
    }
}
Run Code Online (Sandbox Code Playgroud)

我的 SourcesListViewModel:

import Combine

class SourcesListViewModel: ObservableObject {

    init() {
        fetchSources()
    }

    @Published var sources = [SourcesViewModel]()
    private func fetchSources() {
        NetworkManager.shared.getSourceData { (sources) in
            self.sources …
Run Code Online (Sandbox Code Playgroud)

cocoa ios swift swiftui

7
推荐指数
1
解决办法
7289
查看次数

SwiftUI 如何在 WKWebView 中添加活动指示器?

如何在 WKWebView 中添加活动指示器,它会在网页加载时显示指示器并在加载时消失?

我查看了一些旧帖子,但无法弄清楚如何在 SwiftUI 中执行此操作,请参阅以下旧解决方案之一的链接 如何将活动指示器添加到 WKWebView (Swift 3)

uiactivityindicatorview wkwebview swiftui

6
推荐指数
1
解决办法
3849
查看次数

当服务器回调时,按下 SwiftUI 按钮并转到下一个屏幕(下一个视图)

当我想按下按钮显示加载指示器并且如果服务器返回成功响应则显示新视图时,我坚持了非常简单的步骤

在 UIKit 中这非常简单,但在 SwiftUI 中我坚持这样做。

  1. 我需要知道如何初始化/添加活动指示器我在这里找到了一些很酷的例子。我可以将它作为 let 变量存储在我的视图结构中吗?
  2. 然后按“取消隐藏/动画指示器”按钮
  3. 通过我的rest api 服务发出服务器请求
  4. 等待一段时间,然后在成功回调或错误消息上显示新视图。

没什么超级难的,但我卡在这里的是一个按钮,它是我的导航视图的一部分。请帮我推到新屏幕。

    Button(action: {
     // show indicator or animate
     // call rest api service
     // wait for callback and show next view or error alert

    })
Run Code Online (Sandbox Code Playgroud)

我找到了一些链接,但不确定如何正确使用它。

不确定我需要PresentationButtonNavigationLink根本不知道,因为我已经有一个简单的按钮并且想要推送新的视图控制器。

与此问题非常相似的问题,但我没有发现它有用,因为我不知道如何逐步使用如何“创建隐藏的 NavigationLink 并绑定到该状态”

编辑: 我还发现这个视频答案看起来像我弄清楚如何进行导航。但仍需要弄清楚如何在按下按钮时显示活动指示器。

swift swift5 swiftui

1
推荐指数
1
解决办法
1728
查看次数