【问题标题】:Objective C Dismissing The Keyboard On Scroll of Another View [UIScrollViewKeyboardDismissModeInteractive]Objective C关闭另一个视图滚动时的键盘[UIScrollViewKeyboardDismissModeInteractive]
【发布时间】:2014-04-15 23:52:05
【问题描述】:

我正在努力实现与 Apple 的 Messages 应用程序 (iOS 7) 类似的视图。我已经准备好所有代码,以便将工具栏功能性地连接到键盘顶部。

屏幕顶部是一个滚动聊天的红色 UICollectionView。屏幕底部有一个带有 UITextView 和两个按钮的白框。 如果你选择了那个 UITextView,那么键盘会弹出,那个白框会附在键盘的顶部,然后你就可以在那个 UITextView 中输入了。

现在,我只想将手指放在键盘和工具栏上方的红色滚动空间 (collectionView) 上,然后向下滚动到屏幕底部以关闭键盘。我的键盘正在响应 BTN 和发送按钮之间的 UITextView。我可以轻松地使用UIScrollViewKeyboardDismissModeInteractive 让您将手指放入 textInput 视图并拖动并关闭,但是,当我尝试使用时

self.collectionView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive;

键盘没有像预期的那样跟随我的手指。

有人知道我怎样才能让它工作吗?我已经看到了骇人听闻的解决方案,但我已经接近让它工作了,我认为我缺少一些东西。 self.collectionView 与键盘没有任何关系,我假设我必须建立某种关系才能使其正常工作。

【问题讨论】:

    标签: ios iphone objective-c keyboard


    【解决方案1】:

    问题在于UIScrollViewKeyboardDismissModeInteractive 是关于响应this 滚动视图的子视图(例如,滚动视图内部 的文本字段)而召唤的键盘。您正在谈论与此滚动视图外部的文本字段相关的键盘。因此UIScrollViewKeyboardDismissModeInteractive 无关紧要。

    如果键盘要响应滚动视图的移动而移动,必须这样做:实现滚动视图的委托方法以检测用户正在滚动,并且适当更改键盘的框架(或直接关闭它)。

    【讨论】:

    • 我想我仍然不明白的部分是如何定位键盘。我希望能够像使用 DismissModeInteractive 移动键盘一样移动键盘,就像我可以开始关闭键盘一样,它跟随我的手指,然后我可以通过向后移动手指来恢复它起来。
    • 没有“官方”方式,但如果您搜索,您可能会找到在窗口视图层次结构中查找窗口视图的方法......这就是我建议的原因只是响应用户滚动您的视图而关闭键盘。 “互动”效果将很难做到。
    猜你喜欢
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    相关资源
    最近更新 更多