• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

TextView verschieben und wieder anpassen

LangTsu

Erdapfel
Registriert
14.03.13
Beiträge
2
Hallo zusammen,

wenn ich auf ein Textfeld in meiner app geklickt habe hat die Tastatur mein Textfeld verdeckt.
Ich habe im Internet nach diesem Problem gesucht und habe diesen Code gefunden:

Code:
-(void)viewDidAppear:(BOOL)animated 
{    
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];    
[notificationCenter addObserver:self selector:@selector(keyboardWillAppear:) name:UIKeyboardWillShowNotification object:nil];    
[notificationCenter addObserver:self selector:@selector(keyboardWillDisappear:) name:UIKeyboardWillHideNotification object:nil];
}

-(void)keyboardWillAppear:(NSNotification *)notification 
{   
 NSValue *keyboardValue = [notification.userInfo valueForKey:UIKeyboardFrameEndUserInfoKey];    
UIView *entryView = self.view;    
CGRect keyboardFrame = [entryView.window convertRect:[keyboardValue CGRectValue] toView:entryView];        
keyboardFrame = CGRectMake(0.0, 0.0, CGRectGetWidth(self.view.frame), CGRectGetHeight(keyboardFrame));    

keyboardFrame = [entryView convertRect:keyboardFrame toView:textView.superview];    
[UIView beginAnimations:nil context:nil];    
self.textView.frame = keyboardFrame;    
[UIView commitAnimations];
}

-(void)keyboardWillDisappear:(NSNotification *)notification 
{    
[UIView beginAnimations:nil context:nil];    
textView.frame = CGRectInset(textView.superview.bounds, 10.0, 10.0);    
[UIView commitAnimations];
}

Wenn ich jetzt meine Tastatur wieder schließe verschiebt sich das Textfeld allerdings nicht wieder an seinen ursprünglichen
Platz.

Ich habe schon nach der Funktion 'CGRectInsert' gegoogelt und mir das durch gelesen weil ich mir eigendlich sicher bin das es an der Zeile

Code:
textView.frame = CGRectInset(textView.superview.bounds, 10.0, 10.0);

liegt, und die 10.0 und 10.0 das Problem sind.
Aber das hat mir auch nicht weiter geholfen.

Wie kann ich meine ursprünglichen Koordinaten herrausfinden?
Oder was kann/muss ich dort eintragen damit sich mein Textfeld wieder an den richtigen Platz verschiebt?

Vielen Dank
smile.png
 

GoodGuy

Granny Smith
Registriert
02.12.12
Beiträge
12
Du könntest ja deine ursprünglichen Koordinaten vor dem überschreiben auf eine externe Variable speichern. :)
 

bginner

Ingrid Marie
Registriert
13.12.09
Beiträge
266
Du könntest das Ganze auch auf einen TableViewController aufetzen. Dann bekommst du das ganze Geschiebe alles for free ohne das du eine Zeile Code schreiben musst. Dann baust du die TextView einfach in eine Zelle ein. Ansonsten müsstest du nämliich auch noch überprüfen wie es sich mit der Tastatur verhält wenn der User das iPhone im Landscapemodus bedient. Dann hast du wieder völlig andere Koordinaten usw. Also besser gleich auf einen TableViewController aufsetzen.