gpt4 book ai didi

iphone - UITableViewCell 上的 UIPopoverController

转载 作者:行者123 更新时间:2023-11-28 22:56:33 25 4
gpt4 key购买 nike

我有一个 UITableView 单元格,里面有几个 UITextField。当用户单击其中一个文本字段时,会出现一个带有一些信息的弹出窗口。首先,他们必须在 textField 或弹出窗口之外单击以清除弹出窗口,然后再单击下一个 textField。因此,我随后将单元格的 contentView 添加到弹出框 Controller 的 passThroughViews 属性,这样他们就可以随意单击该单元格中的不同文本字段,而不必先关闭弹出框 Controller 。但是,它保持原始弹出窗口打开(这)很好,然后也打开另一个相同的弹出窗口。

有没有一种方法可以在发送打开另一个弹出窗口的命令之前判断弹出窗口是否已经打开?我想不出如何检测到这一点?

最佳答案

如果每个cell控制popover的逻辑,你需要告诉你的custom cell实现UIPopoverControllerDelegate协议(protocol),将popover的delegate设置为self( cell) 并覆盖 popoverControllerDidDismissPopover,如下所示:

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
[self.pop dismissPopoverAnimated:YES]; // hide the popover
self.pop = nil; // release the popover, this forces to create a fresh popover each time
}

如果你愿意,你也可以删除行 self.pop = nil; 但记得在 dealloc 中释放它(我想你没有使用 ARC 代码,因为你正在使用 retainCount)。正如 bbum 所建议的那样,您不应使用 retainCount 来检查对象是否存在。

此外,每个 UIPopoverController 实例都有一个名为 popoverVisible 的属性,如果您想查看弹出窗口是否已经可见。

关于iphone - UITableViewCell 上的 UIPopoverController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10674446/

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