Это не дает точного ответа на вопрос, но вот что я делаю, чтобы закрыть средство выбора при нажатии на один из его элементов (это предотвращает добавление дополнительной кнопки «Готово» или «Внешний щелчок»):
Реализуйте метод делегирования viewForRow
, в котором вы создаете UILabel и возвращаете его:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
В эти пользовательские метки строк добавьте обработчик действия нажатия:
UITapGestureRecognizer *tapAction = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleClick:)];
[label addGestureRecognizer:tapAction];
В обратном вызове handleClick
отклоните открытый лист (тот, который содержит представление средства выбора):
[pickerSheet dismissWithClickedButtonIndex:0 animated:TRUE];