2012-02-15 57 views
0

我有一個非常煩人的問題,在無法真正弄清楚(也許我剛剛創建了我的tableview錯誤的方式,我不知道)。我有一個帶有大量(分組)自定義單元格的UITableview,它們都獲得了UItextField(就像你的聯繫人一樣)。當我自動點擊電話號碼時,它會添加另一個電話號碼簿(也就像編輯模式中的通訊錄一樣)。當使用reloadSections函數時,UItableViewCell失去焦點

爲了達到另一個的UITableViewCell我的插件更新數據連接使用

[MyTable reloadSections:[NSIndexSet indexSetWithIndex:2]withRowAnimation:UITableViewRowAnimationNone]; 

而就在那之後我打電話

​​

要保持關注的焦點重新加載表的特定部分鍵盤。但重新加載後,我在我的文本框上失去焦點,因此無法手動重新聚焦光標,我無法繼續輸入數字。

a。它真的很煩人手動重新對焦

b。某些函數被調用(在textFieldDidEndEditing),我不想被調用,除非我手動切換到另一個Uitextfield。

希望有人能幫助我!

我真的很感激你有時間閱讀,thnx提前。

回答

0

我希望這可以幫助你。但是這裏的條件是,你應該使用標籤爲文本字段

================================= ===============================================

cell =(UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:identifier]; 

     if (nil ==cell) { 
      cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier] autorelease];  
      UITextField *txtview = [[UITextField alloc] 
            initWithFrame:CGRectMake(93.0,36.0,190.0,94.0)];    
      txtview.backgroundColor = [UIColor clearColor]; 
      txtview.tag = 15; 

      txtview.contentInset = UIEdgeInsetsMake(5 ,0 ,0 ,0); 
      txtview.textColor = [UIColor colorWithRed:221.0/255.0 green:249.0/255.0 
               blue:250.0/255.0 alpha:1.0]; 
      [cell.contentView addSubview:txtShout]; 
      [txtview release]; 
     } 
     UITextField *txtview = (UITextField*)[cell.contentView viewWithTag:15]; 
     txtview.text = [NSString stringWithFormat:@"%@",strText]; 

============================================== ============

[mTableView reloadSections:[NSIndexSet indexSetWithIndex:2]withRowAnimation:UITableViewRowAnimationNone]; 
    int rows = [mTableView numberOfRowsInSection:2]; 
    int row = rows-1; //last 
    int lastbutonerow = rows-2; 
    UITableViewCell *cell = [mTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:2]]; 

    UITextField *tf = [cell.contentView viewWithTag:15]; 
    [tf becomeFirstResponder]; 
+0

我不工作仍然失去焦點和鍵盤也許這是因爲需要將UItextField更改爲UiView,因爲UITextfield提供了一個錯誤。 – 2012-02-15 10:31:28

+0

希望編輯的內容將幫助您 – 2012-02-15 12:20:38

0

如果你只插入一個一行,你知道它是哪一行,你不應該使用reloadData。你應該使用insertRowsAtIndexPaths:withRowAnimation:

+0

我沒有直接插入一行,我添加了一個數組項。重建NSdictionaries並重新加載表格內容,以便顯示新行。 – 2012-02-15 10:33:57

+0

將一個項目添加到數組中,然後將'insertRowsAtIndexPaths:withRowAnimation:'發送到表視圖,這是插入一行的方式。聽起來你已經完成了第一部分。你應該嘗試做第二部分。 – 2012-02-15 18:32:45

相關問題