2017-02-06 5 views
0

Я застрял в очень простой функциональности в iOS.Кнопка отправки не работает, когда клавиатура открыта в iOS

Я пытаюсь отправить данные с текстового поля, который находится внутри подсмотра прокрутки. Кнопка запускает действие, когда я нажимаю кнопку, когда клавиатура закрывается, как только я пытаюсь что-то написать, а кнопка открытия клавиатуры перестает отвечать.

VideoViewController:

-(void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    controller.videoID = videoID; 
    controller.channelID = channelID; 

    controller.view.frame = self.commentView.bounds; 

    [self.commentView addSubview:controller.view]; 

    // [self.scrollView addSubview:controller.sendBtn]; 

    [self addChildViewController:controller]; 

    [controller didMoveToParentViewController:self]; 
} 

CommentViewController:

-(void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    controller.videoID = videoID; 
    controller.channelID = channelID; 

    controller.view.frame = self.commentView.bounds; 

    [self.commentView addSubview:controller.view]; 

    // [self.scrollView addSubview:controller.sendBtn]; 

    [self addChildViewController:controller]; 

    [controller didMoveToParentViewController:self]; 
} 

-(void)keyboardWillShow:(NSNotification *)notification 
{ 

    CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

    [UIView animateWithDuration:0.3 animations:^{ 
    CGRect f = self.view.frame; 
    f.origin.y = -keyboardSize.height+100; 
    self.sendView.frame = f; 
    }]; 
    _sendBtn.userInteractionEnabled = YES; 
} 

-(void)keyboardWillHide:(NSNotification *)notification 
{ 
    [UIView animateWithDuration:0.3 animations:^{ 
    CGRect f = self.view.frame; 
    f.origin.y = 0.0f; 
    self.sendView.frame = f; 
    }]; 
} 
-(BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [commentTextField resignFirstResponder]; 
    return YES; 
} 
- (BOOL)touchesShouldCancelInContentView:(UIView *)view 
{ 
    return ![view isKindOfClass:[UIButton class]]; 
} 

Пожалуйста, предложите что-нибудь по этому вопросу. Спасибо.

+1

Вы можете отправить меня или показать мне свой код? то я покажу, что какова фактическая проблема в вашем коде. –

+0

Я также обновил код. Пожалуйста, проверьте – Coder

+1

, что ваш код будет прекрасным, но лучшее предложение вам нужно будет использовать класс IQKeyboardManager для автоматического создания текстового поля с показом клавиатуры. это может помочь решить вашу проблему. [link] (https://github.com/hackiftekhar/IQKeyboardManager) –

ответ

0

я столкнулся с этой проблемой, слишком

Это заняло у меня 2 дня, чтобы найти решение. Вам необходимо установить для параметра cancel touchs значение false для ScrollVIew/View.

Фактически, касание scrollview включено и не позволяет кнопке взаимодействовать.

Это единственная причина, по которой кнопка отправки не работает.

+0

ОК. Это может быть проблемой. Я обязательно попробую это. благодаря – Coder

Смежные вопросы