iOS didSelectRow没有调用连续选择?

时间:2012-11-08 12:28:39

标签: objective-c ios uipickerview

我知道它的基本问题,但我面临着UIPickerView的奇怪行为。 这是我的scanario - 我在我的应用中使用UIPickerView。我的问题是当我点击一行didSelectRow时没有调用方法,但是当我滚动选择器行然后它的工作。 更具体假设选择器上的第一行当前已被选中,如果我单击第4行,则didSelectRow方法未被触发。 我错过了什么?

更新:如果我从viewDidLoad方法评论此代码,那么一切正常 -

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                                   initWithTarget:self
                                   action:@selector(dismissKeyboard)];

    [self.view addGestureRecognizer:tap];

-(void)dismissKeyboard {
    [numberTextField resignFirstResponder];
    [nameTextField resignFirstResponder];
    [cityTextField resignFirstResponder];
    [addressTextField resignFirstResponder];
    [zipTextField resignFirstResponder];
}

2 个答案:

答案 0 :(得分:1)

我假设您尝试使用点按手势识别器来解除键盘,如果他们点击视图中的任何位置。这导致的问题是你的UIPicker现在没有传递给它的触摸事件。我对可能的解决方案有两个想法。

1)方法内部:

  
      
  • (CGPoint)locationOfTouch:(NSUInteger)touchIndex inView:(UIView *)view
  •   

测试位置和/或视图以确定是否触摸了选择器,然后转发事件。

2)不是将水龙头识别器添加到整个视图,而是向可能的水龙头区域添加一个不可见的子视图,以关闭不会与选择器重叠的键盘。

答案 1 :(得分:0)

你是否尝试过将Gesture识别器添加到self.view的其他部分而不是pickerview?