当iPhone的Messages应用程序显示键盘时,如果用户从消息tableview开始向下滑动并继续进入键盘区域,键盘将开始关闭。如果他们在此过程中上下移动手指,则键盘会随之移动。以滑动手势关闭键盘(如在消息应用程序中)
苹果是用私有API来做这件事,还是有办法像这样控制键盘(我认为)手势识别器?
当iPhone的Messages应用程序显示键盘时,如果用户从消息tableview开始向下滑动并继续进入键盘区域,键盘将开始关闭。如果他们在此过程中上下移动手指,则键盘会随之移动。以滑动手势关闭键盘(如在消息应用程序中)
苹果是用私有API来做这件事,还是有办法像这样控制键盘(我认为)手势识别器?
您可以使用UISwipeGestureRecognizer来执行此操作。我不知道如何使用代码来实现它,但如果您使用的是新的Xcode 4.2测试版,然后下面有一个简单的方法:
- (IBAction)dismiss:(id)sender;
在你的xib中转到你的视图,并为你查看UIControl。
将UISwipeGestureRecognizer从库中拖放到视图中。
将IBAction(TouchDown)连接到UISwipeGestureRecognizer。
编写代码以关闭键盘:
- (IBAction)dismiss:(id)sender
{
[yourTextField resignFirstResponder];
}
完成!
我认为最好的方法是在文本输入容器上放置一个隐藏的按钮。一个长条,当它检测到触地和释放或取消,然后隐藏键盘。
我要试一下,我会让你知道我是怎么去的。
简答题;他们很可能在那里做一些'私人API'的事情。
我很确定键盘是在独立视图中,位于您的应用程序窗口之上(您无权访问/控制它,并始终显示在顶部,无论如何)。您可以做的最多的是让输入视图成为/退出第一响应者状态,并且键盘将相应地出现/消失:全部或全部。
您可能能够获取键盘视图的句柄并更改其框架属性(使用记录的类的未记录属性以及未记录的类),但我相当肯定会让您退出存储。
简直太棒了!(_someone_需要接受这个作为答案) –
优秀,你应该有超过10个upvotes的东西! –
真棒真棒真棒..... –
我的回答包含以下无需提供链接,有可能在未来 –
最简单的办法是设置以下两个属性:
轰,宝贝!
幸运的是,苹果在UIScrollView
上添加了方便的物业keyboardDismissMode
,让您的生活变得轻松一些。
现在您的应用程序可以像Messages.app一样改变Storyboard上的单个属性,或者添加一行代码!
此属性使用新的UIScrollViewKeyboardDismissMode
枚举。此枚举的可能值如下:
UIScrollViewKeyboardDismissModeNone // the keyboard is not dismissed automatically when scrolling
UIScrollViewKeyboardDismissModeOnDrag // dismisses the keyboard when a drag begins
UIScrollViewKeyboardDismissModeInteractive // the keyboard follows the dragging touch off screen, and may be pulled upward again to cancel the dismiss
这里的Storyboard属性更改为解雇滚动键盘:
希望帮助您解决问题,
这太好了。兴奋起来,我无事可做,只是勾选了一个框。然后意识到我的键盘顶部附带的输入视图并未随之移动...... doh。 – bandejapaisa
在swift你可以使用下面的代码来获取当前键盘的视图容器(如果存在),比你可以更改在你的代码e是的框架:这里
UIApplication.shared.windows
.filter{ NSStringFromClass($0.classForCoder) == "UIRemoteKeyboardWindow" }
.first?.subviews.filter { NSStringFromClass($0.classForCoder) == "UIInputSetContainerView" }
.first?.subviews.filter { NSStringFromClass($0.classForCoder) == "UIInputSetHostView" }
.first
顺便说是一个叫Reveal工具,让你可以看到视图层次。
它不会在我的iPhone上这样做。 (3GS,iOS 4.3.3) – Mundi
啊,这可能假设在未来的OS版本中。原则上,我想讨论如何获得这样的效果。 –
我相信这是一个iOS 5.x功能。现在应该退出NDA。 –