ios - 在 swift ios 中更新文本字段 ui

标签 ios user-interface background swift textfield

我在使用 ios SDK 8 的 swift 时遇到一个问题

我使用回调来获取数据背景,当获取数据时,我想设置一个文本字段值并更新屏幕。

这是我的代码:

@IBOutlet var txtTest: UITextField!

@IBAction func login() {
    let username = "aaa";
    let password = "bbb";
    var res = ServiceClient.login(username, password: password){
        (res:String, error:String?) -> Void in if(error == nil){
            self.txtTest.text = res;
        }
    }
}

运行这段代码,数据被正确获取并且 txtTest 没有更新,但是当我点击 txtTest 时,该值将被显示。那么有没有办法强制更新UI呢?或向 UI 线程发送消息?

最佳答案

当想在 Swift 中更新 UI 时,每个人都会遇到同样的问题:永远不要在任何辅助线程中更新 UI。这意味着任何有闭包的东西。由于 Swift 大量使用闭包,所以这个问题出现得更多,但这并不是什么新鲜事。

参见 Swift Update Label (with HTML content) takes 1min正确的做事方式。

关于ios - 在 swift ios 中更新文本字段 ui,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25603568/

相关文章:

iphone - 线程 1 : EXEC_BAD_ACCESS on MFMailComposeViewController's dismissModalViewController (tried iOS 5. 1、5、4.3)

c++ - 如何使用 C++ 创建经典的 GUI

c# - 我可以回到线程执行上下文吗?

javascript - 在 iOS/iphone/ipad 中放大时 jqueryui 对话框的位置问题

ios - 将 UINavigationItem 设置为 nil 后,如何重新添加它?

ios - 将 iOS10 模拟器与 XCode 7.2 结合使用

css - 仅使用 CSS 的旧纸张背景纹理

c# - Unity - 检查鼠标点击是否在矩形变换内

XML 文件中的 Android 背景图片

ios - 当应用程序进入后台时无法设置亮度,任何人都可以对此有任何想法吗?