2013-02-28 28 views
0

我想,當用戶瀏覽我的tableview跳過被禁用的文本字段。但是,當它們到達可見單元格的邊界時,所有內容都會因爲嘗試檢測文本字段是否被禁用而出現問題,如果是,則再次遞歸調用我的方法以再次導航。即。如果用戶按下按鈕導航到右側,並且該文本字段被禁用,則遞歸地再次調用右側按鈕。UITextField,用於細胞不可見已經userInteractionEnabled設置爲無

看來,外面有什麼可見的細胞的任何文本字段將被禁用。一旦用戶到達桌子的邊緣,我會進入無限循環,或者事情剛剛破裂。

這裏是我的代碼,我做我的啓用檢查,如果沒有讓我的遞歸調用部分。這真的不應該那麼複雜。從邏輯上講,我想要做的就是檢測我們剛剛移動到的文本字段是否被禁用,如果是,則再次啓動相同的按鈕。沒有什麼花哨。

編輯有些遊戲測試顯示nextTextFieldSelection返回爲null,雖然destinationIndexPath和newTag值是正確的。是否有可能請求indexPath不可見正在導致null返回?

 //logic to move to next text field and manually scroll the tableViewbased on button input is here 

    nextTextFieldSelection = (UITextField *)[[_tableView cellForRowAtIndexPath:destinationIndexPath] viewWithTag:newTag]; 
    if (nextTextFieldSelection.userInteractionEnabled == NO) { 
     switch (arrowButton.tag) { 
      case NumericKeyboardViewLeftArrow: 
       currentTextField = nextTextFieldSelection; 
       [self numericKeyboardView:(VS_NumericKeyboardView *)numericKeyboardView DidSelectArrowButton:(UIButton *)arrowButton]; 
       return; 
      case NumericKeyboardViewRightArrow: 
       currentTextField = nextTextFieldSelection; 
       [self numericKeyboardView:(VS_NumericKeyboardView *)numericKeyboardView DidSelectArrowButton:(UIButton *)arrowButton]; 
       return; 
      default: 
       break; 
     } 
    } 
+0

你每次調用'numerKeyboardView後更改標籤? – Rakesh 2013-02-28 16:24:36

+0

是的,在我的邏輯改變文本字段,左邊或右邊的文本字段標籤取決於用戶如何瀏覽 – JMD 2013-02-28 16:27:10

+0

你所談論的nextTextFieldSelection的標籤正確設置? – Rakesh 2013-02-28 16:31:34

回答

2

cellForRowAtIndexPath對於不可見的單元格返回nil。這可能就是爲什麼你會陷入無限循環。

參見:DidSelectArrowButton:`http://developer.apple.com/library/ios/documentation/uikit/reference/UITableView_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006943-CH3-SW16

+0

繁榮,這正是它。我想我應該首先滾動我的視圖,然後檢查啓用。 – JMD 2013-02-28 17:05:47

+0

如果我是你,我會將所有文本字段添加到數組中。那麼即使它們不可見,你也可以回顧它們。 – pdrcabrod 2013-02-28 17:13:26

+0

這是我最初的計劃,但隨着表格單元的重複使用,一旦用戶開始滾動,一切都會完全失序 – JMD 2013-02-28 17:17:11

相關問題