2015-10-30 9 views
0

В моей ViewController, я создал TextField с именем UITextField *txtMyName; После этого, я добавил свой TextField в tableViewCell [cell addSubview:txtMyName];ИОС получить текстовое значение из текстового поля в tableViewCell

Я могу редактировать текст в моем TextField, но когда я получить текст из textField _strFullName = txtMyName.text;

Но, он получает пустые значения.

Как я могу решить эту проблему!

***** **** Отредактировано

if (indexPath.row == 0) { 
     [self setFrameTextField:cell]; 
     [self CustomTextField:cell :txtMyName]; 
     if ([[dict_infoFriend objectForKey:@"Fullname"] isEqualToString:@" "]) { 
      txtMyName.placeholder = @"Name"; 
     } 
     else{ 
      txtMyName.text = [dict_infoFriend objectForKey:@"Fullname"]; 
     } 
     [cell addSubview:txtMyName]; 
    } 
else if (indexPath.row == 1){ 
     button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
      button.frame = CGRectMake(cell.frame.size.width - 10, 0, 130, 40); 
     } 
     else{ 
      button.frame = CGRectMake(cell.frame.size.width/2 - 65, 0, 130, 40); 
     } 
     [self CustomBTN:button]; 
     [button addTarget:self action:@selector(ClickDone) forControlEvents:UIControlEventTouchUpInside]; 
     [cell addSubview:button]; 
    } 
+0

_strFullName = cell.txtMyName.text; сделайте это – baydi

+0

Сколько клеток в вашем представлении таблицы? –

+0

Нет! Я не могу вызвать cell.txtMyName.text. Потому что я не создан в TableViewCell. –

ответ

0

Поскольку вы добавили текстовое поле в ячейку таблицы, вы, чтобы получить ячейку первых затем используя тег текстового поля, вы можете получить текст.

Попробуйте, как это,

Предположим, что у вас есть тег для текстового поля как txtMyName.tag = 100

-(void) ClickDone { 
     NSIndexPath *indexPath = [[NSIndexPath alloc] indexPathForRow:0 inSection:0]; 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:lastIndexPath]; 
    UITextField *txtField = (UITextField *)[cell viewWithTag:100]; 
    _strFullName = txtField.text; 
    } 
+0

Все сработало. Благодарю. Но, когда щелчок сделан, это создаст UITextField, так что это займет память –

+0

Если это так, вы можете сразу получить текст следующим образом: '_strFullName = ((UITextField *) [cell viewWithTag: 100]). Text' – Vijay

+0

Спасибо, много! –

0

вы не назначайте память вашего текстового поля еще вот почему вы можете редактировать, но не в состоянии retrive его. просто написать txtMyName = [[UITextfield alloc]init]; можно назначить рамку для TextField как txtMyName = [[UITextfield alloc]initWithFrame:CGRectMake(x,y,width,height)]; после назначения памяти для вашего текстового поля, то вы будете retrive текста из текстового поля

+0

Я назначил память и setframe для своего текстового поля. –

+0

txtMyName = [[UITextField alloc] initWithFrame: CGRectMake (cell.frame.size.width - 100, 0, 300, 40)]; –

+0

Это не так? Я не понимаю –