I został zbudowany rosnące UITextView dołączony do klawiatury, podobny do aplikacji Wiadomości giełdowe, przez ładowanie .xib w klawiaturę za inputAccessoryView jako takie:iOS Klawiatura - wejście Accessory Zobacz xib z autolayout nieotrzymania dotykowego wydarzenie
self.keyboardAccessoryView = [[[NSBundle mainBundle]
loadNibNamed:@"KeyboardAccessoryView"
owner:self options:nil]
firstObject];
.xib wygląda i wykorzystuje ograniczenia układu tak, że TextView rośnie pionowo, gdy użytkownik wprowadzi kolejne linijki tekstu:
to wszystko działa doskonale, z rotacją i wszystko je ng, z wyjątkiem jednego dużego błędu - gdy tekst jest wieloliniowy, tylko dolna linia obsługuje zdarzenia dotykowe. Oznacza to, że użytkownik nie może przewijać wewnątrz UITextView, ponieważ ich zdarzenia dotyku są przekazywane do (ciemnoszarego) widoku z tyłu i przewijane w zamian. Nie mogą także wybierać i edytować tekstu w trzech pierwszych wierszach.
Myślę, że mógłbym zrobić obejście poprzez przechwytywanie współrzędne wszystkich zdarzeń kranu i sprawdzenie, czy klawiatura jest otwarty i jak wysoki UITextView jest, to wybór odpowiedniego elementu do otrzymania dotykowy zdarzenia. Ale jest to kruche rozwiązanie, które jest bardziej skomplikowane z obrotem. Czy jest coś, czego mi brakuje w moim automatycznie rosnącym podejściu do wyświetlania tekstu, czy też łatwiejszej do naprawienia?
Mam problem z uzyskaniem wiązań automatycznego układu, aby powiększyć widok akcesoriów w pionie. Gram z układem Czy masz szansę podzielić się spostrzeżeniami? Mogę tylko powiększyć widok tekstowy (poprzez zmianę jego ograniczenia rozmiaru), podczas gdy widok jego akcesoriów pozostaje oryginalny. – rainypixels