在更改方向时,keyboardWillShow没有响应,光标位于UITextView

时间:2014-03-07 05:51:31

标签: ios iphone objective-c ios7

iOS6

  1. 在UITextView中输入一些注释
  2. 光标在文本视图中时更改方向
  3. 观察: keyboardWillShow已做出回应,textView已滚动到顶部,我可以看到评论。事情进展顺利。

    iOS7

    遵循以上两个步骤 观察: keyboardWillShow没有响应。因此,虽然更改方向textView不会滚动到顶部。

    我应该为iOS7添加任何新方法吗?

    我的代码:

    - (void)keyboardWillShow:(NSNotification *)note {
    
       RSLogTrace();
    
       self.textDecorator.isKeyboardSplit = NO;
       CGRect keyboardBounds;
       [[note.userInfo valueForKey:UIKeyboardFrameEndUserInfoKey] getValue:&keyboardBounds];
       CGFloat keyboardHeight;
       keyboardHeight = (UIInterfaceOrientationIsPortrait(self.interfaceOrientation)) ? keyboardBounds.size.height : keyboardBounds.size.width;
       self.tableView.contentInset = UIEdgeInsetsMake(0.0, 0.0, keyboardHeight - 5, 0.0);
       self.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(0.0, 0.0, keyboardHeight, 0.0);
    }
    

1 个答案:

答案 0 :(得分:0)

根据您的评论,您在textViewDidBeginEditing:内有滚动逻辑。

在这种情况下......如果您已开始在特定方向编辑textView并在编辑时旋转屏幕,那么textViewDidBeginEditing:代表在轮换后不会触发,因为从技术上讲,您已经开始在之前的方向编辑它。

解决方案:

将滚动条移动到顶部逻辑(,用于所需的textView )到keyboardWillShow:方法。


PS:当有疑问时,断点所有关键方法并查看流程如何