键盘出现时移动视图 - 仅在编辑时移动



我在这里使用了Apple文档中的演示代码:

http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html#//apple_ref/doc/uid/TP40009542-CH5-SW7

让我的视图根据正在编辑的文本字段相应地移动。它工作得很好,我的观点如我预期的那样移动,除了一件事。

我的问题是,我可以选择一个文本字段,它只会在我开始键入时向上移动视图,而不是在我实际选择文本字段时向上移动视图。

我实际上使用的是与文档中相同的代码(点击上面的链接)。非常令人沮丧,我看不出是什么原因造成的。谢谢。

这是逻辑看。

1)您需要一个Flag值集,最初TRUE ViewDidLoadviewWillAPpear。假设isNeedToMove是该标志值。

您需要在代码中实现这些方法,要使用它们,请不要忘记Adopt UIViewcontroller.h class中的协议UITextFieldDelegate

编辑:在这里,我已经修改了您在您的评论中提到的代码,您需要移动该UIView只是触摸TextFIeld。请参阅下面的 SOme 代码的逻辑。

将目标添加到ViewDiodiLoad中的TextField

- (void)viewDidload
{
 [touchyTextField addTarget:self
                    action:@selector(yourDesiredMethod)
          forControlEvents:UIControlEventTouchDown];
}
-(void)yourDesiredMethod
{
if(isNeedToMove)//this Flag Avoid The unnecessary move call.
{
 //here call the method which Move The UIview
 }
}

- (BOOL)textFieldShouldReturn:(UITextField*)textField
{
[textField resignFirstResponder];
//here call the method which move UIView to its actual position.
 isNeedToMove= TRUE;
 return YES;
}

我希望你能得到一些想法.

我也有这个麻烦。在keyboardWasShow中,Apple文档说:

 if (!CGRectContainsPoint(aRect, activeField.frame.origin) 

我使用过:

if (activeField == myTextField)

这是答案的长版本:移动位于键盘下方的内容

相关内容

  • 没有找到相关文章

最新更新