我在iPad中使用UINavigation条显示弹出窗口。在第二个视图中,我有一个可以显示键盘的UISearchController。键盘推弹出,这很好,但是,如果我现在推UINavigation栏上的“后退”按钮,它会关闭键盘,但弹出不会滑回到其原始位置。任何人都知道如何解决该问题?谢谢!UIPopoverController在键盘滑下后不能移动到原始位置
8
A
回答
9
好了,所以我其实想通了(我相信)你的问题是问什么...以防万一有人从谷歌绊倒在此,我想我会回答我是如何做的。这感觉像是一个黑客工作,但我一直无法找到任何其他方式来做到这一点。
在这带来了键盘控制器,我有它发布通知每当键盘驳斥:
[aTextField resignFirstResponder];
[[NSNotificationCenter defaultCenter] postNotificationName:@"movePopups" object:nil];
然后回到我的家乡屏控制器,用于控制UIPopover上,我添加了一个监听器:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(movePopUpToRightLocation)
name:@"movePopups"
object:nil];
里面的init。一定要记得删除听众在你的dealloc良好的编程习惯:
[[NSNotificationCenter defaultCenter] removeObserver:self];
所以后来每当我得到通知,键盘消失,我到按钮的引用,该酥料饼从显示出来,只是有它直接从它重新出现:
-(void)movePopUpToRightLocation {
NSLog(@"move pop up to right location");
if (morePopUp) {
UIBarButtonItem *barButtonItem = (UIBarButtonItem *)[[bottomToolBar items] objectAtIndex:0];
[morePopUp presentPopoverFromBarButtonItem:barButtonItem
permittedArrowDirections:UIPopoverArrowDirectionDown
animated:YES];
}
}
我还没有添加任何检查其弹出它是,但我可以很容易地做到这一点,如果我有超过1型酥料饼的/它会出现的按钮。但这是你可以走的基本前提。
希望它有帮助!
1
你也可以报名参加UIKeyboardDidHideNotification某处初始化。
[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movePopoverBack:) name:UIKeyboardDidHideNotification object:nil];
此代码移动酥料饼回:
- (void)movePopoverBack:(id)sender {
if ([self.settingsPopoverController isPopoverVisible]) {
[self performSelector:@selector(hidePopover) withObject:nil afterDelay:0.1];
[self performSelector:@selector(movePopoverBack) withObject:nil afterDelay:0.5];
}
}
- (void)hidePopover {
[self.settingsPopoverController dismissPopoverAnimated:YES];
}
- (void)movePopoverBack {
[self.settingsPopoverController
presentPopoverFromBarButtonItem:self.bottomToolbar.settingsButton
permittedArrowDirections:UIPopoverArrowDirectionDown
animated:YES];
}
我没有得到它不延误工作,但是这似乎是我当前的项目可以接受的。希望它能帮助别人。
0
按下后退按钮后,您应手动调用resignFirstResponder
作为搜索字段(例如在viewDidDisappear
之内)。
这应该帮助,但仍然会的iOS 4下进行复制时,该设备为横向与HTHE左侧
相关问题
- 1. 当键盘消失时,UIScrollView不会向下滚动到其原始位置
- 2. Jquerymobile Scrollview在滚动后返回到原始位置。不保存滚动位置
- 3. iOS键盘移动DIVS的位置
- 4. 键盘不能滑动查看
- 5. 使卡拉莱不会移动到原始位置
- 6. 当键盘到位时移动UIScrollView
- 7. 如何将图像移动到其在android的原始位置?
- 8. iOS - 在动画之后移动UIImageView重置为原始位置,为什么?
- 9. 移动后返回原来的位置
- 10. 平滑控制键盘移动OpenGL
- 11. 向下滑动隐藏安卓键盘
- 12. iOS:动画视图移回到原始位置
- 13. Div不会在脚本后重新加载到原始位置
- 14. 在平移之后返回查看它的原始位置
- 15. 如何将buttonView从原始位置移动到Android中的新位置?
- 16. iOS:scrollView在键盘可见时不滚动到正确位置
- 17. 位图移动不平滑
- 18. ImageView在动画后未重置为原始位置
- 19. UiPopOverController(iPad)上的iPhone键盘
- 20. 如何在按下android键盘后移动到特定活动(android)
- 21. 滚动后将导航栏返回到原始位置
- 22. UIPopoverController位置
- 23. 动画在一段时间后开始移动位置
- 24. jQueryUI - 即使在拖放后拖动拖动回到原始位置
- 25. CSS3动画:元素在@keyframes动作后移动到其初始位置
- 26. EditText在移动时不显示键盘
- 27. 移动表单内容位于键盘下
- 28. Visual Studio - 将光标/光标移动到选择的开始或结束位置的键盘快捷键
- 29. 滑动div第二次重置它的位置,只有在它移动它后
- 30. setError popup在按下软键盘后不能正确重新定位?
由于青梅按钮的问题!这对我确定的人有帮助。 – paranoidroid 2010-12-03 08:21:53