#import "PLYTextInputView.h"
@implementation PLYTextInputView {
@private
UITextField *_textField;
}
- (instancetype)init {
if ((self = [super init])) {
_textField = [[UITextField alloc] init];
_textField.delegate = self;
[self addSubview:_textField];
[_textField addTarget:self
action:@selector(textDidChange:)
forControlEvents:UIControlEventEditingChanged];
}
return self;
}
- (NSAttributedString *)attributedPlaceholder {
return _textField.attributedPlaceholder;
}
- (void)setAttributedPlaceholder:(NSAttributedString *)attributedPlaceholder {
[_textField setAttributedPlaceholder:attributedPlaceholder];
}
- (NSString *)text {
return _textField.text;
}
- (void)setText:(NSString *)text {
_textField.text = text;
}
- (void)updateLayout {
if (self.layout == nil)
return;
CGRect oldFrame = self.frame;
CGRect newFrame = [self.layout fetch];
if (CGRectEqualToRect(oldFrame, newFrame))
return;
self.frame = newFrame;
for (UIView *view in self.subviews)
[view setNeedsLayout];
}
- (void)layoutSubviews {
[super layoutSubviews];
[self updateLayout];
_textField.frame = self.bounds;
}
- (void)textDidChange:(UITextField *)textField {
[_onChange callWithArgument:nil];
}
@end