| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /*
- * 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
|