我知道它的基本问题,但我面临着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];
}
答案 0 :(得分:1)
我假设您尝试使用点按手势识别器来解除键盘,如果他们点击视图中的任何位置。这导致的问题是你的UIPicker现在没有传递给它的触摸事件。我对可能的解决方案有两个想法。
1)方法内部:
- (CGPoint)locationOfTouch:(NSUInteger)touchIndex inView:(UIView *)view
测试位置和/或视图以确定是否触摸了选择器,然后转发事件。
2)不是将水龙头识别器添加到整个视图,而是向可能的水龙头区域添加一个不可见的子视图,以关闭不会与选择器重叠的键盘。
答案 1 :(得分:0)
你是否尝试过将Gesture识别器添加到self.view的其他部分而不是pickerview?