gpt4 book ai didi

iOS swift : How to dismiss keyboard before compute-intensive code?

转载 作者:可可西里 更新时间:2023-11-01 01:11:10 29 4
gpt4 key购买 nike

我有一个带有文本字段的 View ,用户将使用数字键盘输入一个整数。

然后用户点击按钮进行计算。

计算是 CPU 密集型的,需要几秒或更长时间才能完成,具体取决于输入。

如果我尝试在代码运行之前关闭键盘,它不会被关闭——代码首先运行。 (下面的示例代码)

此代码的后台线程是否需要键盘关闭才能正常工作?

@IBOutlet weak var numberField: UITextField!

@IBAction func runCPUIntensiveCode(_ sender: UIButton) {
numberField.resignFirstResponder()
runCode()
}

最佳答案

我认为您有两个解决方案 DispatchQueue :
1. [我推荐这个] 通过 global background queues 之一将您的计算移至后台:

@IBAction func runCPUIntensiveCode(_ sender: UIButton) {
numberField.resignFirstResponder()
DispatchQueue.global(.userInitiated).async{

runCode()
DispatchQueue.main.async{
<notify UI about completion>
}
}

2。以较小的延迟开始计算。有时动画子系统需要空闲的主线程来调度动画:

@IBAction func runCPUIntensiveCode(_ sender: UIButton) {
numberField.resignFirstResponder()
DispatchQueue.main. asyncAfter(DispatchWallTime.distantFuture){
runCode()
<notify UI about completion>
}
}

关于iOS swift : How to dismiss keyboard before compute-intensive code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46944578/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com