Files
firebase-ios-sdk/Example/DynamicLinks/FDLBuilderTestAppObjC/ParamTableViewCell.m
T

82 lines
2.8 KiB
Objective-C
Raw Normal View History

2018-09-19 12:08:51 -07:00
/*
* Copyright 2018 Google
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import "ParamTableViewCell.h"
static const NSUInteger kHInset = 10;
static const NSUInteger kVInset = 4;
@implementation ParamTableViewCell {
UILabel *_label;
UITextField *_textField;
}
@synthesize paramConfig = _paramConfig;
- (instancetype)init {
self = [super initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:NSStringFromClass(self.class)];
if (self) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
_label = [[UILabel alloc] init];
_label.font = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
_textField = [[UITextField alloc] init];
_textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
[self.contentView addSubview:_label];
[self.contentView addSubview:_textField];
[_textField addTarget:self
action:@selector(onTextFieldValueChanged)
forControlEvents:UIControlEventEditingChanged];
[_textField addTarget:self
action:@selector(onTextFieldDidEndOnExit)
forControlEvents:UIControlEventEditingDidEndOnExit];
}
return self;
}
- (void)layoutSubviews {
_label.frame = CGRectMake(kHInset, kVInset, self.contentView.frame.size.width - 2 * kHInset,
(self.contentView.frame.size.height / 2) - 2 * kVInset);
_textField.frame = CGRectMake(kHInset, (self.contentView.frame.size.height / 2) + kVInset,
self.contentView.frame.size.width - 2 * kHInset,
(self.contentView.frame.size.height / 2) - 2 * kVInset);
}
- (void)onTextFieldValueChanged {
if (![self.textFieldValue isEqualToString:_textField.text]) {
self.textFieldValue = _textField.text;
[_delegate paramTableViewCellUpdatedValue:self];
}
}
- (void)onTextFieldDidEndOnExit {
[_textField resignFirstResponder];
}
- (void)setTextFieldValue:(NSString *)textFieldValue {
_textFieldValue = textFieldValue;
if (![_textFieldValue isEqualToString:_textField.text]) {
_textField.text = self.textFieldValue;
}
}
- (void)setParamConfig:(NSDictionary *)paramConfig {
_paramConfig = [paramConfig copy];
self.accessibilityIdentifier = _paramConfig[@"id"];
_label.text = _paramConfig[@"label"];
}
@end