相关疑难解决方法(0)

在iOS7正确的时间显示键盘

在iOS 6中,我习惯用键盘输入viewDidLoad.

- (void)viewDidLoad
{
    [super viewDidLoad];

    [txtField becomeFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)

这样,当navigationController推送新的viewController时,键盘已经存在,从左到右平滑地动画,避免自下而上的动画.

在iOS 7中,这种行为似乎已经破裂.

如果我加[txtField becomeFirstResponder]viewDidLoad,键盘会出现在其最终位置推动画,已经中部:不愉快的效果!

我试着移动[txtField becomeFirstResponder]viewWillAppear,但最终的结果是不变的.

你知道一种方法来恢复iOS 6的行为,将新的viewController和键盘全部推到一起吗?

编辑:使用计时器也不起作用...无论我设置什么时间延迟,键盘只在推动动画结束时显示.

到目前为止,我最好的尝试是把[txtField becomeFirstResponder]viewWillLayoutSubviewsviewDidLayoutSubviews.不幸的是,这样做是在推送viewController时工作但不是在弹出时(键盘没有出现).

iphone keyboard objective-c ios ios7

10
推荐指数
1
解决办法
2201
查看次数

在动画时KB焦点后,iOS7 FormSheet模式视图会向右移动

有一个传统的UISplitViewControlleriPad应用程序,使用presentViewController从"右侧"VC窗格显示模态视图:animated:completion:modalPresentationStyle设置为UIModalPresentationFormSheet.在viewDidAppear模态视图的VC中,我们在a上调用了becomeFirstResponder UITextField.在iOS6中,这会导致中心模态视图从底部向上滑动,然后聚焦KB.但是,从iOS7开始,出现的情况是视图从底部向上滑动后,向右滑动约(估计)200点.奇怪的是,如果你关闭键盘,一旦你这样做,视图就会像在iOS6上那样滑回到它的居中位置.从那时起,当模态视图启动时,KB焦点会使其保持居中并且仅向上滑动一点,这对于非全屏模式视图来说是正常的iOS行为.这就像一旦你从那时"纠正"自己就解雇了KB.我做了实验,发现:

  1. 如果您animatedpresentViewController呼叫设置为NO,则其工作方式与iOS6类似.
  2. 如果你根本不打电话becomeFirstResponder,它就像iOS6一样.
  3. 如果你打电话performSelector:xxxxafterDelay:0,becomeFirstResponder作为选择器而不是becomeFirstResponder直接调用,它也像iOS6一样工作.

上面的选项3目前是我的前进解决方法,但我的问题是:这是一个iOS7错误,还是我们做错了,显然可以在6但在iOS7中没有?

仅在iOS7之后发生.仅在模拟器上重新创建一次,但在测试设备(iPad mini)上只有100%的时间.从搜索结果中我已经完成了当前最好的猜测(假设我们的代码不是责怪后iOS7),键盘的动画与iOS UI层底部向上滑动的视图之间存在竞争条件类型错误这会导致视图向右移动而不是向上移动,就像通常在模式显示非全屏视图并弹出KB时一样.在阅读了类似的SO问题后,我得到了这个理论.

ipad ios ios7

9
推荐指数
1
解决办法
578
查看次数

标签 统计

ios ×2

ios7 ×2

ipad ×1

iphone ×1

keyboard ×1

objective-c ×1