0

私はここのドキュメントでAppleが持っているデモコードを使用しました:

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

編集中のtextFieldに応じてビューを移動させるため。それは素晴らしい働きをします、私の見解は私が期待するように動きます、1つのことを除いて。

私の問題は、textFieldを選択でき、実際にtextFieldを選択したときではなく、入力を開始したときにのみビューを上に移動することです。

私は文字通りドキュメントと同じコードを使用しています(上記のリンクをたどってください)。非常に苛立たしいことですが、これが何を引き起こすのかわかりません。ありがとう。

4

2 に答える 2

1

これがロジックを参照してください。

1)またはで最初にFlag値セットが必要です。そのフラグ値であると仮定します。TRUEViewDidLoadviewWillAPpearisNeedToMove

Adoptこれらのメソッドをコードに実装する必要があります。これらのメソッドを使用するには、のプロトコルを忘れないUITextFieldDelegate でくださいUIViewcontroller.h class

編集:ここで私はあなたがあなたのコメントで述べたようにコードを変更しましたあなたはただ触れるだけでそのUIViewを動かす必要がありました。以下を参照してTextFIeldくださいSOmeコードのロジックです。

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 に答える