我的应用程序中有一个聊天功能,我试图通过向下拖动手指来隐藏键盘,就像你可以在IOS 5中的短信应用程序中隐藏键盘一样。
我已经将UITableView子类化了,但是一旦滚动开始,我就不再接听
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
我想知道如何滚动并找出手指在滚动过程中的位置,这样如果它开始靠近键盘,我就可以开始隐藏它了。
我认为这是很多人都想要的功能,有关如何制作它的想法吗?
答案 0 :(得分:7)
DAKeyboardControl它是您正在寻找的MIT许可代码源。
答案 1 :(得分:4)
进一步的谷歌搜索显示,这个问题与以下内容重复:
答案 2 :(得分:3)
我在Daniel's DAKeyboardControl library的帮助下在我的应用中启用了此功能。您可以使用一行语句实现隐藏酸度的iMessage样式键盘:
[self.view addKeyboardPanningWithActionHandler:^(CGRect keyboardFrameInView) {
// Move interface objects accordingly
// Animation block is handled for you
}];
答案 3 :(得分:2)
UITableView继承自UIScrollView,因此您可以使用UIScrollViewDelegate方法检测滚动位置,例如- (void)scrollViewDidScroll:(UIScrollView *)scrollView
答案 4 :(得分:2)
幸运的是,在iOS 7中,Apple在keyboardDismissMode
上添加了方便的属性UIScrollView
。现在,只需更改Storyboard上的单个属性或添加一行代码,您的应用就可以像消息一样工作。
此属性使用新的ScrollViewKeyboardDismissMode
枚举。枚举的可能值如下。
UIScrollViewKeyboardDismissModeNone
UIScrollViewKeyboardDismissModeOnDrag
UIScrollViewKeyboardDismissModeInteractive
这是故事板属性在滚动时关闭键盘