Я программирование формы для моего приложения IOS, и UITextField
сек акт моего странно:UITextField .text атрибута всегда возвращает пустую строку
Когда форма находится в состоянии обновления (поля уже заполнены) я могу редактировать и получить новый текст ввода (введенный пользователем) с атрибутом .text
. Но когда форма находится в режиме вставки, UITextField
s изначально пустые, и я не могу получить текст, введенный тогда пользователем с атрибутом .text
, потому что он всегда возвращает пустую строку независимо от типа пользователя. Вот видео, показывающее вопрос: https://youtu.be/tPJZ3sC-IFU
{
__weak IBOutlet UITextField *txtLibelle; //linked by ctrl + drag to the storyboard
NSString *libelleTemp;
}
- (void)viewDidLoad {
[super viewDidLoad];
// ...
[txtLibelle addTarget:self
action:@selector(editingChanged:)
forControlEvents:UIControlEventEditingChanged];
// ...
}
-(void) editingChanged:(id)sender {
libelleTemp = txtLibelle.text;
// libelleTemp is set to @"" whatever the user has typed in when I'm in insert mode
}
-(void)initWithLib:(NSString *)lib {
libelleTemp = [NSString stringWithString:lib];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [super tableView:tableView cellForRowAtIndexPath:indexPath];
if (indexPath.section == 0) {
txtLibelle.text = libelleTemp;
}
// ...
return cell;
}
initWithLib: метод вызывается из предыдущего контроллера представления, как это:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIStoryboard *accueilNavSB = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
FicheAlerteTableViewController *vc = [accueilNavSB instantiateViewControllerWithIdentifier:@"ficheAlerte"];
NSString *libelle = @"";
[vc initWithLib:libelle];
[self.navigationController showViewController:vc sender:self];
}
Я уже перекомпоновывается поле из раскадровки в мой класс , а в режиме отладки мой UITextField
не равен нулю.
Мое текстовое поле находится в статическом UITableView
, поэтому я вижу, работает ли обновление, прокручивая ячейку с экрана, а затем прокручивая ее.
Кто-нибудь знает, почему это происходит и как решить проблему?
Что значит, вы не можете получить текст ввода через .text? –
Если текстовые поля пусты в режиме вставки, как вы можете получить строку атрибутом .text? В любом случае это пустая строка. –
Вопрос отредактирован. –