From 807320e3bbed52bd3143e490a2ba08028f577063 Mon Sep 17 00:00:00 2001 From: Henrique Valcanaia Date: Fri, 3 Dec 2021 14:58:27 -0300 Subject: [PATCH] LIVE-225: Add left button image and text support https://github.com/slackhq/SlackTextViewController/pull/654/files --- Source/SLKTextInputbar.m | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Source/SLKTextInputbar.m b/Source/SLKTextInputbar.m index 7fbc34c8..e8a5492a 100644 --- a/Source/SLKTextInputbar.m +++ b/Source/SLKTextInputbar.m @@ -105,6 +105,8 @@ - (void)slk_commonInit [self slk_registerTo:self.layer forSelector:@selector(position)]; [self slk_registerTo:self.leftButton.imageView forSelector:@selector(image)]; + [self slk_registerTo:self.leftButton.titleLabel forSelector:@selector(font)]; + [self slk_registerTo:self.leftButton.titleLabel forSelector:@selector(text)]; [self slk_registerTo:self.rightButton.titleLabel forSelector:@selector(font)]; } @@ -746,7 +748,7 @@ - (void)slk_updateConstraintConstants else { self.editorContentViewHC.constant = zero; - CGSize leftButtonSize = [self.leftButton imageForState:self.leftButton.state].size; + CGSize leftButtonSize = self.leftButton.intrinsicContentSize; if (leftButtonSize.width > 0) { self.leftButtonHC.constant = roundf(leftButtonSize.height); @@ -802,6 +804,11 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(N [self slk_updateConstraintConstants]; } } + else if ([object isEqual:self.leftButton.titleLabel] && + ([keyPath isEqualToString:NSStringFromSelector(@selector(font))] + || [keyPath isEqualToString:NSStringFromSelector(@selector(text))])) { + [self slk_updateConstraintConstants]; + } else if ([object isEqual:self.rightButton.titleLabel] && [keyPath isEqualToString:NSStringFromSelector(@selector(font))]) { [self slk_updateConstraintConstants]; @@ -839,6 +846,8 @@ - (void)dealloc [self slk_unregisterFrom:self.layer forSelector:@selector(position)]; [self slk_unregisterFrom:self.leftButton.imageView forSelector:@selector(image)]; + [self slk_unregisterFrom:self.leftButton.titleLabel forSelector:@selector(font)]; + [self slk_unregisterFrom:self.leftButton.titleLabel forSelector:@selector(text)]; [self slk_unregisterFrom:self.rightButton.titleLabel forSelector:@selector(font)]; }