Flush pills on text view updates

This commit is contained in:
aringenbach
2022-05-13 13:52:46 +02:00
parent 932b9ad4e6
commit 77a6469625
4 changed files with 63 additions and 7 deletions
@@ -20,6 +20,7 @@
@interface MXKMessageTextView()
@property (nonatomic, readwrite) CGPoint lastHitTestLocation;
@property (nonatomic) NSArray *pillViews;
@end
@@ -54,4 +55,40 @@
return [self isThereALinkNearLocation:point];
}
#pragma mark - Pills Flushing
- (void)setText:(NSString *)text
{
if (@available(iOS 15.0, *)) {
[self flushPills];
}
[super setText:text];
}
- (void)setAttributedText:(NSAttributedString *)attributedText
{
if (@available(iOS 15.0, *)) {
[self flushPills];
}
[super setAttributedText:attributedText];
}
- (void)registerPillView:(UIView *)pillView
{
NSMutableArray *pills = [NSMutableArray arrayWithArray:self.pillViews];
[pills addObject:pillView];
self.pillViews = pills;
}
/// Flushes all previously registered Pills from their hierarchy.
- (void)flushPills API_AVAILABLE(ios(15))
{
for (UIView* view in self.pillViews)
{
view.alpha = 0.0;
[view removeFromSuperview];
}
self.pillViews = [NSArray new];
}
@end