繁体   English   中英

当UI更新时,IOS会收到通知。

[英]IOS get notified when UI updates.

我有自定义键盘扩展名。 按下删除键时调用此函数:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0),
            {
                for _ in 1..<50
                {
                    (self.textDocumentProxy as UIKeyInput).deleteBackward()
                }
                print("Deletion End")
                self.deleteCounter = 0
        })

我不认为dispatch_async是相关的,但我把它包括在内,只是因为它。

问题是,即使我的控制台在循环结束后打印“Deletion End”,文本字段的UI也不会更新,直到一两秒钟过去。

好像在呼唤

(self.textDocumentProxy as UIKeyInput).deleteBackward()

不立即删除字符并更新UI。

如何在实际更新UI时通知我?

改变如下:

dispatch_async(dispatch_get_main_queue(),{
                for _ in 1..<50
                {
                    (self.textDocumentProxy as UIKeyInput).deleteBackward()
                }
                print("Deletion End")
                self.deleteCounter = 0
        })

说明:

UI必须在主线程中工作,因此当您使用后台队列时,您始终必须在主队列中分派UI更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM