нежелано пространство за превъртане в UITextView

Имам UITextView, покриващ цялата настройка на контролера за изглед в сценария. Има ограничения за ръководството за горно оформление, ръководство за долно оформление, водещ марж и заден марж.

Регистрирал съм се за известия от клавиатурата, за да коригирам вмъкванията на съдържание по този начин:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardAppeared:)
                                             name:UIKeyboardDidShowNotification
                                           object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardDisappeared:)
                                             name:UIKeyboardDidHideNotification
                                           object:nil];

изпълнение на keyboardAppeared:

- (void)keyboardAppeared:(NSNotification *)notification {
    NSDictionary *notificationUserInfo = [notification userInfo];
    CGRect keyboardRect = [[notificationUserInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
    self.textView.contentInsets = UIEdgeInsetsMake(0, 0, keyboardRect.heignt, 0);
    self.textView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, keyboardRect.height, 0);
}

изпълнение на keyboardDisappeared:

- (void)keyboardDisappeared:(NSNotification *) {
    self.textView.contentInsets = UIEdgeInsetsZero;
    self.textView.scrollIndicatorInsets = UIEdgeInsetsZero;
}

Проблемът тук е, че когато се появи клавиатурата, има нежелано превъртане в textView, ако текстът на textView е по-малък. Нежеланото превъртане не се появява, когато размерът на текста надвишава височината на textView.

Моля помогнете!


person Tarun    schedule 25.11.2014    source източник
comment
вижте този отговор stackoverflow.com/questions/25782352/   -  person Deepesh    schedule 25.11.2014
comment
Линкът не помогна. Получавам допълнително място в края на текста. Вече смених automaticAdjustScrollViewInsets на NO.   -  person Tarun    schedule 25.11.2014


Отговори (1)


Реших го. Проблемът е много рядък, но ако някой е заседнал, ето решението.

Използвах да задавам текста на textView във viewDidLoad така:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.textView setScrollEnabled:YES];
    [self.textView setText:#-some text-#];
    [self.textView setScrollEnabled:NO];
}

Изключих превъртането, така че текстовият изглед да не се превърта до дъното при настройка на текст. И това създаде проблема с допълнителното превъртане. (не съм сигурен защо)

Използвах това решение, за да реша проблема: https://stackoverflow.com/a/3287419

person Tarun    schedule 25.11.2014