2013-05-10 12 views
5

Mam UIPopover z UIScrollView wewnątrz zawierającą UITextView na dole. Gdy klawiatura pokazuje, rozmiar okna podręcznego zmienia się, gdy widok tekstu zaczyna być edytowany. Chcę poniższy kod, aby upewnić się, że widok tekstu jest widoczny:UITextView wewnątrz UIScrollView wewnątrz Popover nie jest w pełni widoczny po wyświetleniu klawiatury

- (void)textViewDidBeginEditing:(UITextView *)textView { 

    CGRect visRect = textView.frame; 
    [self.scrollView scrollRectToVisible:visRect animated:NO]; 

} 

Problem polega na tym, że kod nie powoduje, że cały widok tekstu jest widoczny. Zamiast zobaczyć tylko tekst do dołu kursora jest pokazane, jak pokazano poniżej:

enter image description here

Jak mogę pokazać całą widok tekstowy/przewijać Scrollview do dna? Próbowałem to:

CGPoint bottomOffset = CGPointMake(0, self.scrollView.contentSize.height - self.scrollView.bounds.size.height); 
[self.scrollView setContentOffset:bottomOffset animated:YES]; 

jak wyjaśniono in this answer ale nic nie działa.

Ponadto przewijanie przewijane jest do pokazanej pozycji PO przeniesieniu klawiatury na miejsce. Idealnie byłoby, gdyby przewijanie stało się przed lub w trakcie ruchu klawiatury.

Każda pomoc będzie świetna.

+0

Przed przewijając visRect zmienić pochodzenia visRects jako "visRect.origin.y = CGRectGetMaxY (visRect)". A następnie przewiń do tego prostego. – croyneaus4u

+0

@ croyneaus4u. Dzięki, niestety nie pomogło. –

Odpowiedz

1

mogę znaleźć rozwiązanie:

- (void)keyboardDidShow:(NSNotification *)notification { 
NSLog(@"Notification: %s", __PRETTY_FUNCTION__); 
// 
CGFloat textviewBottom = CGRectGetMaxY(self.commentsTextView.frame); 
CGRect belowTextViewRect = CGRectMake(0, textviewBottom, 350.f, self.scrollView.contentSize.height - textviewBottom); 
// NB! This works ONLY: 1) keyboardDidShow 2) Non-animated; 
// Does NOT work: 1) animated, 2) keyboardWillShow, 3) textViewDidBeginEditing 
[self.scrollView scrollRectToVisible:belowTextViewRect animated:NO]; 
} 
1

@hey Dave

Ten Domyślnie Sprawa w od UIPopOverController, gdy używaliśmy UIPopOverControler aby wyświetlić dowolny PopUpView i załóżmy, że PopUpView wysokość tak duży, jak mogą być objęte KeyBoard następnie w tej sprawie, że PopOverView Automatycznie pobiera Shrink sam. gdy zrezygnujesz z klawiatury, PopUpView rozwinie się automatycznie. Mam do czynienia z tym samym przypadkiem.

To jest tylko moja opinia można zmienić pochodzenie CurrentView(parentView of PopUpView) jak klawiatura zamiar pokazać/ukryć tak, aby mógł wyświetlać PopUpView się prawidłowo i mógł się z odpowiednią przestrzeń.

Zobacz poniżej Są metody delegowania UITextView Odpowiedzi Wstecz jako edycji początku i końca.

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView 
{ 
//chnage the OriginY of PopUpView's SUperView 
} 
- (void)textViewDidBeginEditing:(UITextView *)textView 
{ 
//re Adjust the OriginY of PopUpView's SUperView 
} 

Mam nadzieję, że może ci się przydać.

+0

Dzięki za sugestię. –

+0

@DaveChambers u welcome ..... !!!!!!!!! – Kamarshad

+0

@DaveChambers przynajmniej powinieneś był wznowić mój wysiłek, jeśli to naprawdę dał ci jakiś pomysł .... !!!! :) – Kamarshad

Powiązane problemy