gpt4 book ai didi

ios - 如何在 swift 中等到文本标签的 firstResponder 为 false

转载 作者:行者123 更新时间:2023-11-28 07:06:52 26 4
gpt4 key购买 nike

我是 swift 的新手。我的应用程序使用人们上传到网络的照片并在表格 View 中显示照片。每当某些用户上传新照片时,它就会重新加载。我有一个 UITextField,当您按下它时,键盘会升起。我的问题是每当 reloadView 发生时(当新照片到达时)它就会关闭我想要做的是检查 UITextField 是否是第一个识别器,如果是,我想等待重新加载,直到它不是第一个识别器。

func refreshView()
{
dispatch_async(dispatch_get_main_queue()) { () -> Void in
while (self.dataSource.writeSomethingTextLabel.isFirstResponder()) {
//need to wait somehow for notification that it is not first responder anymore
}
self.tableView.reloadData()
}
}

因此,使用这段代码,键盘当然不会关闭,但是 wile 循环运行并且一切都卡住了。我的问题是如何等到用户完成使用文本标签(第一响应者为假)。谢谢

最佳答案

您可以在两个地方有条件地重新加载 tableView:当新数据到达时和当 textField 结束编辑时:

@class YourViewController: UIViewController, UITextFieldDelegate {

var needsToReloadTableView = false;

func reloadTableViewIfNeeded() {
if needsToReloadTableView {
self.tableView.reloadData()
needsToReloadTableView = false
}
}

func gotNewData() {
needsToReloadTableView = true

if !self.textField.isFirstResponder {
reloadTableViewIfNeeded()
}
}

func textFieldDidEndEditing(textField:UITextField) {
reloadTableViewIfNeeded()
}

}

关于ios - 如何在 swift 中等到文本标签的 firstResponder 为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30211213/

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