Skip to content

Commit dec84e8

Browse files
committed
Added alwaysGlowing property
1 parent 5998a43 commit dec84e8

File tree

2 files changed

+31
-6
lines changed

2 files changed

+31
-6
lines changed

SLGlowingTextField.h

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
@interface SLGlowingTextField : UITextField
2020

21+
@property (nonatomic, assign) BOOL alwaysGlowing;
2122
@property (nonatomic, strong) UIColor *borderColor;
2223
@property (nonatomic, strong) UIColor *glowingColor;
2324

SLGlowingTextField.m

+30-6
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ - (id)init
6666
self = [super init];
6767
if (self)
6868
{
69+
self.alwaysGlowing = NO;
6970
[self _configureView];
7071
}
7172
return self;
@@ -76,6 +77,7 @@ - (id)initWithFrame:(CGRect)frame
7677
self = [super initWithFrame:frame];
7778
if (self)
7879
{
80+
self.alwaysGlowing = NO;
7981
[self _configureView];
8082
}
8183
return self;
@@ -86,6 +88,7 @@ - (id)initWithCoder:(NSCoder *)aDecoder
8688
self = [super initWithCoder:aDecoder];
8789
if (self)
8890
{
91+
self.alwaysGlowing = NO;
8992
[self _configureView];
9093
}
9194
return self;
@@ -109,7 +112,7 @@ - (void)setBackgroundColor:(UIColor *)backgroundColor
109112

110113
- (void)setGlowingColor:(UIColor *)glowingColor
111114
{
112-
if ([self isFirstResponder]) {
115+
if ([self isFirstResponder] || self.alwaysGlowing) {
113116
[self animateBorderColorFrom:(id)self.layer.borderColor to:(id)glowingColor.CGColor shadowOpacityFrom:(id)[NSNumber numberWithFloat:1.f] to:(id)[NSNumber numberWithFloat:1.f]];
114117
}
115118

@@ -122,12 +125,23 @@ - (void)setBorderColor:(UIColor *)borderColor
122125
{
123126
_borderColor = borderColor;
124127

125-
if (![self isFirstResponder])
128+
if (![self isFirstResponder] && !self.alwaysGlowing)
126129
{
127130
self.layer.borderColor = self.borderColor.CGColor;
128131
}
129132
}
130133

134+
- (void)setAlwaysGlowing:(BOOL)alwaysGlowing
135+
{
136+
if (_alwaysGlowing && !alwaysGlowing && ![self isFirstResponder]) {
137+
[self hideGlowing];
138+
} else if (!_alwaysGlowing && alwaysGlowing && ![self isFirstResponder]) {
139+
[self showGlowing];
140+
}
141+
142+
_alwaysGlowing = alwaysGlowing;
143+
}
144+
131145
- (void)setFrame:(CGRect)frame
132146
{
133147
[super setFrame:frame];
@@ -167,9 +181,9 @@ - (BOOL)becomeFirstResponder
167181
{
168182
BOOL result = [super becomeFirstResponder];
169183

170-
if (result)
184+
if (result && !self.alwaysGlowing)
171185
{
172-
[self animateBorderColorFrom:(id)self.layer.borderColor to:(id)self.layer.shadowColor shadowOpacityFrom:(id)[NSNumber numberWithFloat:0.f] to:(id)[NSNumber numberWithFloat:1.f]];
186+
[self showGlowing];
173187
}
174188
return result;
175189
}
@@ -178,13 +192,23 @@ - (BOOL)resignFirstResponder
178192
{
179193
BOOL result = [super resignFirstResponder];
180194

181-
if (result)
195+
if (result && !self.alwaysGlowing)
182196
{
183-
[self animateBorderColorFrom:(id)self.layer.borderColor to:(id)self.borderColor.CGColor shadowOpacityFrom:(id)[NSNumber numberWithFloat:1.f] to:(id)[NSNumber numberWithFloat:0.f]];
197+
[self hideGlowing];
184198
}
185199
return result;
186200
}
187201

202+
- (void)showGlowing
203+
{
204+
[self animateBorderColorFrom:(id)self.layer.borderColor to:(id)self.layer.shadowColor shadowOpacityFrom:(id)[NSNumber numberWithFloat:0.f] to:(id)[NSNumber numberWithFloat:1.f]];
205+
}
206+
207+
- (void)hideGlowing
208+
{
209+
[self animateBorderColorFrom:(id)self.layer.borderColor to:(id)self.borderColor.CGColor shadowOpacityFrom:(id)[NSNumber numberWithFloat:1.f] to:(id)[NSNumber numberWithFloat:0.f]];
210+
}
211+
188212
- (CGRect)placeholderRectForBounds:(CGRect)bounds
189213
{
190214
return CGRectInset(bounds, 8, 2);

0 commit comments

Comments
 (0)