关闭 UICollectionViewCell 内的 UITextField 的键盘

Posted

技术标签:

【中文标题】关闭 UICollectionViewCell 内的 UITextField 的键盘【英文标题】:Dismiss keyboard for UITextField that is inside of a UICollectionViewCell 【发布时间】:2015-07-19 04:17:24 【问题描述】:

我有一个 UICollectionView,其中包含这样的自定义单元格:

class DurationDayCells: UICollectionViewCell
    @IBOutlet weak var dayLabel: UILabel!

    @IBOutlet weak var dayHourText: UITextField!

我希望 UICollectionView(及其容器视图在键盘弹出文本字段时向上移动)并且我使用 NSNotificationCenterkeyboardWillShowkeyboardWillHide 来执行此操作,如本教程中所示:@987654321 @

但是,问题是当我尝试关闭 UICollectionView 的容器视图(红色视图,带有倒置三角形 UIButton)时,键盘停留在屏幕上,如屏幕截图所示:

我想要做的是在与 UIButton 关联的 IBAction 函数中关闭容器视图时隐藏键盘。

【问题讨论】:

【参考方案1】:

在关闭容器视图后尝试使用self.view.endEditing(true)

【讨论】:

非常感谢!虽然我有一个后续问题,但resignFirstResponder 是做什么的?我不太了解文档,但很多教程似乎都用它来关闭键盘。 很高兴它有帮助!区别在于self.view.endEditing(true)隐藏了所有可能在self.view中的键盘,而resignFirstResponder是特定UITextField的方法,所以它只会隐藏自己的键盘。【参考方案2】:

要添加到上一个答案,您必须将“view”更改为“collectionview”,例如

self.collectionView.endEditing(true)

【讨论】:

以上是关于关闭 UICollectionViewCell 内的 UITextField 的键盘的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式选择 UICollectionViewCell [关闭]

如何在 UICollectionViewCell 内缩放 UIScrollView?

UITextView 没有在 UICollectionViewCell 内启动

UICollectionViewCell 内带有 UITableView 的自定义单元格

Swift:选择 UICollectionViewCell(在 UITableViewCell 内)时如何使用 Segue

UITableView 单元内的 UICollectionViewCell 和自动布局