2013-12-16 55 views
1

我有我的選擇器視圖設置的方式是當我選擇其中一個選項時更改文本字段。如何在第一次加載時選擇UIPickerView中的第一行?

[dataArray addObject:@"1"]; 
    [dataArray addObject:@"2"]; 
    [dataArray addObject:@"3"]; 

當我嘗試在第一次加載時選擇第一個選項時,它不會更改文本字段。但是,如果我向上滾動一下,然後讓它在第一個選項上下拉或滾動到選項2,然後向後滾動到選項1,則可以選擇UIPickerView中的第一個選項。有沒有辦法在第一個選項上檢測觸摸並讓它選擇它並更改爲該選項?如果是這樣,那麼做這件事最好的行動是什麼。

+0

如果您只想將文本字段初始化爲第一個選項,那麼爲什麼您需要通過選取器視圖來完成它?爲什麼不直接將文本字段設置爲[dataArray objectAtIndex:0]? – Anna

回答

3

如果我理解正確,您正在使用委託來通知選擇器視圖中的選擇更改並相應地設置您的文本字段?如果是這樣,您可以在加載選取器視圖後調用[self pickerView:self.pickerView didSelectRow:0 inComponent:0],以便第一個元素出現在文本字段中。

+0

多數民衆贊成這是一個體面的解決方案,但有沒有辦法它不會填充文本字段第一,只有當它的點擊? – user2997441

+0

如果選取器視圖未檢測到作爲選擇的水龍頭,則檢測水龍頭將很困難且容易出錯。你可以設置一個輕擊手勢識別器,但是這樣會有很大的誤差。我建議你保持這種妥協。 –

+0

而不是調用委託方法,你應該使用selectRow:inComponent:animated :. – rdelmar

相關問題