2017-01-13 13 views
1

У меня есть пользовательская ячейка на виде таблицы. У ячейки есть текстовое поле. Например, если у меня есть 4 ячейки каждый с текстовым полем. я могу использовать три текстовых поля, и связанное текстовое поле начало редактирование. но для одного из текстовых полей, когда я нажимаю на него - текстовое поле начало редактирование не вызывается. вот мой методтекстовое поле начало редактирование не вызывается на пользовательской ячейке

-(void)textFieldDidBeginEditing:(UITextField *)textField{ 

      NSString *SelectedIndexString = [[NSUserDefaults standardUserDefaults] 
             stringForKey:@"SelectedIndex"]; 
     NSInteger selectionCount = [SelectedIndexString integerValue]; 
     NSLog(@"%ld",(long)selectionCount); 

      if (selectionCount) { 
       self.accountNameTxtField.enabled = NO; 
      } 
      else{ 
       self.accountNameTxtField.enabled = YES; 


      } 
    } 

// STTableViewCell 

     @interface STTableViewCell() <UITextFieldDelegate> 
     - (void)awakeFromNib { 
       [super awakeFromNib]; 
       radioBtn.alpha = 0; // Initialization code [self customBorder]; 
       // Setting the OTP label color to the RGB blue  
       self.OTPLabel.textColor = [UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0]; 
       // Set delegate to textfield 
       self.accountNameTxtField.delegate=self; 
      } 

- (void)setEditing:(BOOL)editing animated:(BOOL)animated { 

    [super setEditing:editing animated:animated]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(incomingNotification:) name:@"No Change" object:nil]; 

    if (!editing) 
    { 

     radioBtn.alpha = 0; 
     isTableviewEditing=NO; 
     if (![self.authURL.name isEqual:accountNameTxtField.text]) { 

      self.accountNameTxtField.text = [self.accountNameTxtField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
      if (accountNameTxtField.text.length >= 1) 
      { 
      // Write out the changes. 
       descriptionBlank = NO; 

       self.authURL.name = self.accountNameTxtField.text; 
       [self.authURL saveToKeychain]; 
      } 
      else{ 
       [accountNameTxtField resignFirstResponder]; 
       [self.delegate cellDidTap:self]; 
       self.accountNameTxtField.text =self.authURL.name; 
       descriptionBlank = YES; 
      } 

     } 
     accountNameTxtField.userInteractionEnabled=NO; 
     [accountNameTxtField resignFirstResponder]; 
     for (CALayer *layer in accountNameTxtField.layer.sublayers) { 
      if ([layer.name isEqualToString:@"Gradient"]) 
      { 
       [layer setHidden:YES]; 
       break; 
      } 
     } 

     progressView.alpha=1.0; 
     OTPLabel.alpha=1.0; 

    } 
    else 
    { 
     radioBtn.alpha = 1; 
     isTableviewEditing=YES; 

     for (CALayer *layer in accountNameTxtField.layer.sublayers) { 
      if ([layer.name isEqualToString:@"Gradient"]) 
      { 
       [layer setHidden:NO]; 
       break; 
      } 
     } 

     OTPLabel.alpha=0.0; 
     progressView.alpha=0.0; 
     accountNameTxtField.userInteractionEnabled=YES; 

    } 
} 

- (void)setSelected:(BOOL)selected animated:(BOOL)animated 
{ 
    [super setSelected:selected animated:animated]; 
    if (selected) {`selectHilightCount++; 
     self.accountNameTxtField.enabled = NO; 
    } else { 
     self.accountNameTxtField.enabled = YES; 
    }` 
} 
+1

вы создали делегат? – dirtydanee

+0

Да. его вызывают для других текстовых полей правильно. – Sadik

+0

не могли бы вы показать этот фрагмент кода, где вы настроили делегата? Кроме того, вы переопределили 'prepareForSegue' для вашего' UITableViewCell'? – dirtydanee

ответ

0

Установите делегат. как:

cell.txtFld.delegate = self; 

Надеется, что это будет hepls you.thanks

+0

Привет Кришна, он не работает для определенного текстового поля. Метод получает вызов для других текстовых полей. – Sadik

+0

Ohhh. Я сожалею – Sanjukta

+0

@ Садик Я думаю, Кришна прав, вы это пробовали? –

0
-(void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
CustomCell *cell = (CustomCell *)[self.tableView viewWithTag:textField.tag]; 
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell]; 
[email protected]("indexPath ===%ld", indexPath.row) 
// You can make logic as you want 
} 
+0

Привет, как получить настраиваемое текстовое поле ячейки для включения и отключения взаимодействия с текстовым полем – Sadik

+0

Вы можете получить свое текстовое поле UITextfield * txtValue = (UITextfield *) [cell viewWithTag: ваше значение тега]; –