我在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. 移动键盘位置
- 3. 动画后返回到原始位置
- 4. 移动位于键盘下的UITextField
- 5. Jquerymobile Scrollview在滚动后返回到原始位置。不保存滚动位置
- 6. iOS键盘移动DIVS的位置
- 7. 键盘不能滑动查看
- 8. 使卡拉莱不会移动到原始位置
- 9. iOS“CABasicAnimation”在动画完成后将组件移动到原始位置
- 10. 将元素移回到原始位置
- 11. 当键盘到位时移动UIScrollView
- 12. 当键盘出现时,UIPopoverController在iOS 7上奇怪地移动
- 13. 如何将图像移动到其在android的原始位置?
- 14. iOS - 在动画之后移动UIImageView重置为原始位置,为什么?
- 15. 移动div留下原始位置的空间?
- 16. 移动后返回原来的位置
- 17. JQuery UI:可拖动不能恢复到原始位置
- 18. 平滑控制键盘移动OpenGL
- 19. 如何保持subview,移动平移手势,在辞职键盘后的位置?
- 20. Phonegap JQM固定位置页眉/页脚移动iOS键盘后移动
- 21. 不能移动键盘视图iOS9 swift
- 22. jquery动画回滚到原始位置向下滚动(?)
- 23. iOS视图在键盘消失后自动向下移动
- 24. 向下滑动隐藏安卓键盘
- 25. iOS:动画视图移回到原始位置
- 26. 调整窗口大小时,组件移动到原始位置
- 27. Div不会在脚本后重新加载到原始位置
- 28. 如何在不移动原始位置的情况下在另一个位置插入html元素
- 29. 获取原始鼠标移动(不是屏幕上的位置)
- 30. 图像相对于原始位置而不是窗口移动
由于青梅按钮的问题!这对我确定的人有帮助。 – paranoidroid 2010-12-03 08:21:53