Search code examples
iphoneobjective-cxcodeuipickerviewtextfield

UIPickerView realtime update on TextField


As soon as I scroll the PickerView (or) UIDatePicker, I need the value to get displayed on a TextField :

  1. While Scrolling. Even when the picker is moving the text field should update itself. Is it possible ?

  2. On the event that the Picker stops moving and comes to rest. Is there an event for the PickerView to come to rest so that I could update the textField (as soon as the pickerView comes to rest).

      // I do not wish to use the TextFieldDidEndEditing 
     // I want the textField to update itself when the picker view comes to rest. 
    

It would be helpful if anyone could solve 1) and 2)


Solution

  • (1) might not be possible. For (2), you can use the delegate method pickerView:didSelectRow:inComponent. Let me know if you need any help with this.

    For UIPickerView

    (1) Implement pickerView:titleForRow:forComponent,

    - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
        // Every time the picker view is rotated, this method will be called to fetch the title.
        NSInteger selectedRow = [pickerView selectedRowInComponent:0];
        // Get selected row like above and process data and update text field.
    
    
        [..] // Process the title
        return the title.
    }
    

    (2) This is more obvious.

    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
       // You have the selected row, update the text field.
    }