I was running into issues where after a mention is detected, my textView's typingAttributes are not used.
Looking at the code, it appears that after inserting a mention, the typingAttributes get recreated via stripCustomAttributesFromTypingAttributes. This method takes the current typingAttributes and removes all keys that are also in mentionUnselectedAttributes. It then tries to recreate typingAttributes by using fontSetByApp and textColorSetByApp.
My code never set these values, and instead was only using typingAttributes. After a mention was created, the font and foreground attributes would be removed by stripCustomAttributesFromTypingAttributes, leaving my textView with no typingAttributes.
This is a simple change to also keep track of typingAttributesSetByApp. If in typingAttributesByStrippingMentionAttributes: we see that typingAttributesSetByApp is non-nil, we return those. Otherwise we fall back on fontSetByApp and textColorSetByApp.
I was running into issues where after a mention is detected, my textView's
typingAttributes
are not used.Looking at the code, it appears that after inserting a mention, the
typingAttributes
get recreated viastripCustomAttributesFromTypingAttributes
. This method takes the currenttypingAttributes
and removes all keys that are also inmentionUnselectedAttributes
. It then tries to recreatetypingAttributes
by usingfontSetByApp
andtextColorSetByApp
.My code never set these values, and instead was only using
typingAttributes
. After a mention was created, the font and foreground attributes would be removed bystripCustomAttributesFromTypingAttributes
, leaving my textView with notypingAttributes
.This is a simple change to also keep track of
typingAttributesSetByApp
. If intypingAttributesByStrippingMentionAttributes:
we see thattypingAttributesSetByApp
is non-nil, we return those. Otherwise we fall back onfontSetByApp
andtextColorSetByApp
.