title: UITableView willDisplayCell not fired when cell contains UITextView
body: <p>I think i stumbled on strange bug in UITableView class. If cell from table contain UItextView (non editable and non scrollable in my case), and user selects its text (copy menu shows up), the cell that contains that particular UITextView will not work as it should any more. UITableView will not fire  willDisplayCell and cellForRowAtIndexPath methods for that cell any more. I made some tests, and cells are removed from visibleCells array when they are off screen, and they are put back into the visibleCells array when they are on screen again, but delegate methods are not being called.</p>
  
  <p>This is very annoying since it prevents you to configure your reusable cells. I am not sure if this is considered a bug at all. I would like if you could double check and confirm this behavior. </p>
  
  <p>Here is my simplified test code, so you can check it for yourself:</p>
  
  <pre><code>#pragma mark - View lifecycle
  
  - (void)viewDidLoad
  {
      [super viewDidLoad];
  
      tableData = [[NSArray alloc]initWithObjects:@"First Text",@"Second",@"Third",@"Fourth",@"5th",@"6th",@"7th",@"8th",@"9th",@"10th",@"11th",@"12th",@"13th", nil];
  
      self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, 460) style:UITableViewStylePlain];
      self.tableView.backgroundColor = [UIColor darkGrayColor];
      self.tableView.dataSource = self;
      self.tableView.delegate = self;
  
      [self.view addSubview:self.tableView];
  
      UIButton* btn = [[UIButton alloc]initWithFrame:CGRectMake(200, 0, 100, 30)];
      [btn setBackgroundColor:[UIColor redColor]];
      [btn setTitle:@"Clickme" forState:UIControlStateNormal];
      [btn addTarget:self action:@selector(onBtnClick:) forControlEvents:UIControlEventTouchUpInside];
  
      [self.view addSubview:btn];
      // Do any additional setup after loading the view, typically from a nib.
  }
  
  
  #pragma mark -  TableView Datasource
  
  -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  {
      return 1;
  }
  
  -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  {
      return tableData.count;
  }
  
  -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:    (NSIndexPath *)indexPath
  {
      static NSString *CellIdentifier = @"Cell";
  
  
      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  
      if (cell == nil) 
      {
          cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
          UITextView* tv = [[UITextView alloc]initWithFrame:cell.contentView.bounds];
          [tv setEditable:NO];
          [cell.contentView addSubview:tv];        
      }
  
      for (UIView* subview in cell.contentView.subviews) 
      {
          if([subview isKindOfClass:[UITextView class]])
          {
              UITextView* tv = (UITextView*)subview;
              tv.text = [tableData objectAtIndex:indexPath.row];
          }
      }
      NSLog(@"Configured cell at index: %d", indexPath.row);
      return cell;
  
  }
  
  #pragma mark - TableView Delegate
  
  -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell     forRowAtIndexPath:(NSIndexPath *)indexPath
  {
      NSLog(@"Will display cell at index: %d", indexPath.row);
  }
  
  
  #pragma mark - Button callback handlers
  -(void)onBtnClick:(id)sender
  {
      NSLog(@"Number of visible cells: %d",[self.tableView visibleCells].count);
  }
  </code></pre>
  
  <p>By running this code you can see that selecting text in first cell will lead to tableview stop firing delegate events when cell is on the screen again. By pressing button you can check that number of visible cells is always correct, so it means that cells are being added and removed to visible cells list. It is just callback delegates that are not fired.</p>