2010-08-06 59 views
0

我試圖設置UITableViewCell的一組UITextViews可編輯當用戶點擊UITableView的「編輯」按鈕。每個UITableViewCell都有一個UITextField(cell.blurb)。該代碼將每個UITextView設置爲可編輯,但是,光標在每一個之間交替非常迅速。我很確定這是一個響應者鏈問題,(他們都成爲第一響應者也許?),但我似乎無法補救。我試過讓每個UITextView resignFirstResponder(保存在列表中的第一個),但它什麼都不做。在表格單元格中,它們是不可編輯的。設置多個UITextView的可編輯導致光標之間閃爍

//set all text areas to editable and opaque 
int numSections = [_tableView numberOfSections]; 
for (int s = 0; s < numSections; s++) { 
    int numRows = [_tableView numberOfRowsInSection: s]; 
    for (int r = 0; r < numRows; r++) { 
     NSIndexPath *indexPath = [NSIndexPath indexPathForRow:r inSection:s]; 
     CustomTableViewCell *cell = (CustomTableViewCell *)[_tableView cellForRowAtIndexPath:indexPath]; 
     [cell blurb].editable = YES; 
     [[cell blurb] resignFirstResponder]; 

     //set the first row's UITableView to the first responder 
     if (s == 0 && r == 0) 
      [[cell blurb] becomeFirstResponder]; 
    } 
} 

回答

0
if (s == 0 && r == 0) { 
    [[cell blurb] becomeFirstResponder]; 
} else if ([[cell blurb] isFirstResponder]) { 
    [[cell blurb] resignFirstResponder]; 
} 
+0

線程我認爲這將做到這一點,但它仍然是UITextFields之間閃爍...... – grahamp 2010-08-09 19:20:33

1

我設法讓工作是創建兩個UITextViews,一個可編輯的唯一的解決辦法,按編輯狀態一個沒有使用相同的框架和性能,以及管理各不透明度。很蹩腳,不是嗎?

另一件事,我曾在我的委託來實現的(這恰好是的UITableViewCell子類):

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView { 
    if (!self.editing) 
      return NO; 
    return YES; 
} 

否則,未知原因,UITableView的動畫結束(當它退出編輯模式)在UITextView之一上再次觸發becomeFirstResponder。

這裏是devforums https://devforums.apple.com/message/290194