diff --git a/Riot/Modules/Room/RoomViewController.m b/Riot/Modules/Room/RoomViewController.m index a5c372753..8f33bba88 100644 --- a/Riot/Modules/Room/RoomViewController.m +++ b/Riot/Modules/Room/RoomViewController.m @@ -4700,17 +4700,17 @@ static CGSize kThreadListBarButtonItemImageSize; } } -- (void)roomInputToolbarViewDidTapCancel:(MXKRoomInputToolbarView*)toolbarView +- (void)roomInputToolbarViewDidTapCancel:(RoomInputToolbarView*)toolbarView { [self cancelEventSelection]; } -- (void)roomInputToolbarViewDidChangeTextMessage:(MXKRoomInputToolbarView *)toolbarView +- (void)roomInputToolbarViewDidChangeTextMessage:(RoomInputToolbarView *)toolbarView { [self.userSuggestionCoordinator processTextMessage:toolbarView.textMessage]; } -- (void)roomInputToolbarViewDidOpenActionMenu:(MXKRoomInputToolbarView*)toolbarView +- (void)roomInputToolbarViewDidOpenActionMenu:(RoomInputToolbarView*)toolbarView { // Consider opening the action menu as beginning to type and share encryption keys if requested. if ([MXKAppSettings standardAppSettings].outboundGroupSessionKeyPreSharingStrategy == MXKKeyPreSharingWhenTyping) @@ -7447,13 +7447,14 @@ static CGSize kThreadListBarButtonItemImageSize; didRequestMentionForMember:(MXRoomMember *)member textTrigger:(NSString *)textTrigger { - if (textTrigger.length) { - NSString *textMessage = [self.inputToolbarView textMessage]; - textMessage = [textMessage stringByReplacingOccurrencesOfString:textTrigger - withString:@"" - options:NSBackwardsSearch | NSAnchoredSearch - range:NSMakeRange(0, textMessage.length)]; - [self.inputToolbarView setTextMessage:textMessage]; + RoomInputToolbarView *toolbar = (RoomInputToolbarView *)self.inputToolbarView; + if (toolbar && textTrigger.length) { + NSMutableAttributedString *attributedTextMessage = [[NSMutableAttributedString alloc] initWithAttributedString:toolbar.attributedTextMessage]; + [[attributedTextMessage mutableString] replaceOccurrencesOfString:textTrigger + withString:@"" + options:NSBackwardsSearch | NSAnchoredSearch + range:NSMakeRange(0, attributedTextMessage.length)]; + [toolbar setAttributedTextMessage:attributedTextMessage]; } [self mention:member]; diff --git a/Riot/Modules/Room/Views/InputToolbar/RoomInputToolbarView.h b/Riot/Modules/Room/Views/InputToolbar/RoomInputToolbarView.h index f9ebc8527..ec6b4caba 100644 --- a/Riot/Modules/Room/Views/InputToolbar/RoomInputToolbarView.h +++ b/Riot/Modules/Room/Views/InputToolbar/RoomInputToolbarView.h @@ -39,21 +39,21 @@ typedef enum : NSUInteger @param toolbarView the room input toolbar view */ -- (void)roomInputToolbarViewDidTapCancel:(MXKRoomInputToolbarView*)toolbarView; +- (void)roomInputToolbarViewDidTapCancel:(RoomInputToolbarView*)toolbarView; /** Inform the delegate that the text message has changed. @param toolbarView the room input toolbar view */ -- (void)roomInputToolbarViewDidChangeTextMessage:(MXKRoomInputToolbarView*)toolbarView; +- (void)roomInputToolbarViewDidChangeTextMessage:(RoomInputToolbarView*)toolbarView; /** Inform the delegate that the action menu was opened. @param toolbarView the room input toolbar view */ -- (void)roomInputToolbarViewDidOpenActionMenu:(MXKRoomInputToolbarView*)toolbarView; +- (void)roomInputToolbarViewDidOpenActionMenu:(RoomInputToolbarView*)toolbarView; /** Tells the delegate that the user wants to send an attributed text message.