devopsinthecloud icon indicating copy to clipboard operation
devopsinthecloud copied to clipboard

Create typingAttributesSetByApp to restore textView typingAttributes

Open rcancro opened this issue 4 years ago • 0 comments

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.

rcancro avatar Nov 25 '20 00:11 rcancro