2011-12-20 48 views
0

像許多其他用戶一樣,我試圖設置將UITextField引入UITableViewCell以用於編輯行。但不是添加一個新的視圖,我試圖使用accessoryView屬性。起初,我想這...UITextField無法成爲第一響應如果通過附件添加到UITableViewCell

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
     UITextField *textField =[[UITextField alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 200.0f, 44.0f)]; 
     UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
     cell.accessoryView = textField; 
     [textField becomeFirstResponder]; 
} 

...和的UITextField正確添加,但我需要再次點擊它來獲取鍵盤顯現。但是,如果我這樣做...

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
     UITextField *textField =[[UITextField alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 200.0f, 44.0f)]; 
     UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
     [cell addSubview:textField]; 
     [textField becomeFirstResponder]; 
} 

...它的工作原理,鍵盤顯示出來,但是,我沒有得到任何具有它作爲accessoryView的(與其他意見移動更容易定位的其他好處周圍)。我想addSubview:調用正在改變響應者鏈或什麼,並允許我的UITextField成爲第一響應者,但也許還有另一種方法來做到這一點,允許我設置單元的accessoryView。謝謝。

回答

0

我討厭我的解決方案,但它的工作原理和更好的方法。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];    

    CGRect detailTextLabelFrame = cell.detailTextLabel.frame; 
    detailTextLabelFrame.origin.x -= 100.0f; 
    detailTextLabelFrame.size.width += 100.0f; 

    UITextField *textField = [[UITextField alloc] initWithFrame:detailTextLabelFrame]; 

    cell.detailTextLabel.hidden = YES; 
    cell.accessoryView = textField; 

    // These are the two lines that made it work, but it feels ugly  
    [cell.accessoryView removeFromSuperview]; 
    [cell addSubview:cell.accessoryView]; 

    [cell.accessoryView becomeFirstResponder]; 
} 
0

我希望你瞭解textfield delegate.Try這樣....可能會對你有幫助。

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField { 

if(theTextField == yourtextfieldname) { 
    [yourtextfieldname resignFirstResponder]; 
} 

return YES; 
} 
+0

嗨Emon,我甚至無法讓鍵盤出現。但是,是的,我正在使用類似的東西來解散鍵盤。 – rob5408 2011-12-21 16:09:16

相關問題