2013-11-20 62 views
0

我的要求要求我在keyboard的同一時間顯示數字UIPickerView。當我點擊文本框時,我創建的數字選取器現在不出現,儘管鍵盤確實如此。當我點擊表格中的行時,文本字段中沒有光標,但出現了選擇器。顯示UIPicker和鍵盤

當用戶點擊textfield時,應該顯示選取器並且還應該顯示keyboard。兩者同時。有三個原型行:數據行,日期選擇器行和數字選擇器行。數字選取器還需要允許來自軟件keyboard的文本輸入。

hideExistingPickerBelowIndexPath僅添加選取器類型的新行並向數據添加臨時行。

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath 
{ 
    if (indexPath != nil) 
    { 
     WCHistoryItem *anItem = [self getAnItemFromIndexPath:indexPath]; 
     if ([anItem.type isEqualToString:kDate] || [anItem.type isEqualToString:kNumeric]) {     

      if (_isPickerVisible != NO) 
      { 
       [self hideExistingPickerBelowIndexPath:[NSIndexPath indexPathForRow:self.pickerIndexPath.row-1 inSection:self.pickerIndexPath.section]]; 
      } 
      [self showNewPickerAtIndex:indexPath]; 
     } else { 
      if (_isPickerVisible == YES) { 
       [self hideExistingPickerBelowIndexPath:[NSIndexPath indexPathForRow:self.pickerIndexPath.row-1 inSection:self.pickerIndexPath.section]]; 
      } 
     } 
    } 
} 

-(IBAction)didBeginEditingNumericField:(UITextField*)sender 
{ 
    WCHistoryItem *anItem = [self getAnItemFromUIView:sender]; 
    NSIndexPath *indexPath = [self getAnIndexPathFromUIView:sender]; 

    if (_isPickerVisible == NO) 
    { 
     //make a date cell 
     [self showNewPickerAtIndex:indexPath]; 

    } else { 
     [self hideExistingPickerBelowIndexPath:[NSIndexPath indexPathForRow:self.pickerIndexPath.row-1 inSection:self.pickerIndexPath.section]]; 

     [self showNewPickerAtIndex:indexPath];    
    } 
    UITextField *textField = (UITextField*)sender; 
    [textField becomeFirstResponder]; 
} 

我們需要使用軟件鍵盤在文本字段中同時顯示選取器和光標。這兩個在同一時間。我怎麼做?

回答

0

所以你描述的是一系列的要求。項目here表明您可以使用鍵盤顯示活動Picker和活動textField。所以你想要的核心功能是由系統提供的。

將選取器動畫化到視圖中應該可以在鍵盤顯示時工作,並且如演示項目所示,您可以在textField中點擊文本並旋轉選取器。

在試圖將它集成到一個複雜的項目中之前,它通常真的有助於啓動一個非常簡單的演示項目來測試某些東西,確保它是正確的。

+0

感謝您的回覆!實際上只有一個要求:一個選取器控制和一個鍵盤,它們同時出現並且都可以被用戶用來設置值。我正在評估你分享的項目,看看它是否可以修改來做我需要的。 –

+0

這並不能解決我的問題。我無法弄清楚爲什麼我可以動態顯示一個選擇器而不是軟件鍵盤,或者顯示一個鍵盤而不是選擇器。 –

+0

正確 - 所以你有其他問題。你的任務很複雜,你需要將它分解成更簡單的部分,並讓每個部分工作。你原來的問題是讓兩個觀點一起工作,我現在展示的作品。因此,採取該演示項目,使主視圖tableView,將textField添加到單元格,然後再試一次。如果你試圖「強迫」你目前複雜的項目工作,你可能會花費更多的時間在這方面,而不是你需要的。由於鍵盤實際上是在窗口中與視圖重疊的窗口中,嘗試添加新視圖可能無法正常工作。 –