Skip to content

Commit 6ee1ada

Browse files
committed
输入框 at 别人之后,弹不出来的bug
1 parent be69848 commit 6ee1ada

1 file changed

Lines changed: 15 additions & 17 deletions

File tree

Coding_iOS/Views/UIMessageInputView.m

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -190,9 +190,8 @@ - (void)setToUser:(User *)toUser{
190190
}else{
191191
self.placeHolder = @"请输入私信内容";
192192
}
193-
194-
[_inputTextView setText:inputStr];
195-
[self textViewDidChange:_inputTextView];
193+
_inputTextView.selectedRange = NSMakeRange(0, _inputTextView.text.length);
194+
[_inputTextView insertText:inputStr? inputStr: @""];
196195
}
197196
}
198197

@@ -203,11 +202,15 @@ - (void)prepareToShow{
203202
[kKeyWindow addSubview:_emojiKeyboardView];
204203
[kKeyWindow addSubview:_addKeyboardView];
205204
if (_isAlwaysShow) {
206-
[UIView animateWithDuration:0.25 animations:^{
207-
[self setY:kScreen_Height - CGRectGetHeight(self.frame)];
208-
} completion:^(BOOL finished) {
205+
if ([self isCustomFirstResponder]) {
209206
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardChange:) name:UIKeyboardWillChangeFrameNotification object:nil];
210-
}];
207+
}else{
208+
[UIView animateWithDuration:0.25 animations:^{
209+
[self setY:kScreen_Height - CGRectGetHeight(self.frame)];
210+
} completion:^(BOOL finished) {
211+
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardChange:) name:UIKeyboardWillChangeFrameNotification object:nil];
212+
}];
213+
}
211214
}else{
212215
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardChange:) name:UIKeyboardWillChangeFrameNotification object:nil];
213216
}
@@ -370,8 +373,9 @@ - (void)sendTextStr{
370373
NSString *sendStr = self.inputTextView.text;
371374
if (sendStr && ![sendStr isEmpty] && _delegate && [_delegate respondsToSelector:@selector(messageInputView:sendText:)]) {
372375
[self.delegate messageInputView:self sendText:sendStr];
373-
self.inputTextView.text = nil;
374-
[self textViewDidChange:_inputTextView];
376+
377+
_inputTextView.selectedRange = NSMakeRange(0, _inputTextView.text.length);
378+
[_inputTextView insertText:@""];
375379
}
376380
}
377381
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
@@ -403,10 +407,7 @@ - (void)atSomeUser:(User *)curUser inTextView:(UITextView *)textView andRange:(N
403407
}else{
404408
appendingStr = @"@";
405409
}
406-
textView.text = [textView.text stringByReplacingCharactersInRange:range withString:appendingStr];
407-
textView.selectedRange = NSMakeRange(range.location +appendingStr.length, 0);
408-
[self textViewDidChange:textView];
409-
[self notAndBecomeFirstResponder];
410+
[textView insertText:appendingStr];
410411
}
411412
- (void)textViewDidChange:(UITextView *)textView{
412413
[self saveInputStr];
@@ -496,10 +497,7 @@ - (void)emojiKeyBoardView:(AGEmojiKeyboardView *)emojiKeyBoardView didUseEmoji:(
496497
[self.delegate messageInputView:self sendBigEmotion:emotion_monkey];
497498
}
498499
}else{
499-
NSRange selectedRange = self.inputTextView.selectedRange;
500-
self.inputTextView.text = [self.inputTextView.text stringByReplacingCharactersInRange:selectedRange withString:emoji];
501-
self.inputTextView.selectedRange = NSMakeRange(selectedRange.location +emoji.length, 0);
502-
[self textViewDidChange:self.inputTextView];
500+
[self.inputTextView insertText:emoji];
503501
}
504502
}
505503

0 commit comments

Comments
 (0)