0

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

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

让我的视图根据正在编辑的 textField 相应移动。它工作得很好,我的观点按照我的预期移动,除了一件事。

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

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

4

2 回答 2

1

这是逻辑见。

1)您最初需要一个Flag值集或。假设是那个标志值。TRUEViewDidLoadviewWillAPpearisNeedToMove

你需要在你的代码中实现这些方法,使用它们不要忘记AdoptUITextFieldDelegateUIViewcontroller.h class.

编辑:在这里,我已经更改了您在您的评论中提到的代码,您需要在触摸 . 时移动 UIView。TextFIeld请参见下面是带有某些代码的逻辑。

addTargetTextFieldViewDiodiLoad

- (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;

}

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

于 2012-11-15T19:12:14.140 回答
0

我也有这个烦恼。在keyboardWasShown中,Apple文档说:

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

我用了:

if (activeField == myTextField)

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

于 2012-11-16T07:43:54.457 回答