如何确定触摸了哪个控件?

时间:2010-11-09 13:46:32

标签: iphone objective-c cocoa-touch delegates uipickerview

我在视图中有两个PickerViews,如何设置我的委托以确定要处理哪一个? 某种if()来验证投掷事件的选择器是pickerX还是pickerY?

任何想法都将受到赞赏。

2 个答案:

答案 0 :(得分:5)

您可以为PickerViews提供IBOUtlets,例如

@property (nonatomic, retain) IBOutlet UIPickerView *firstPickerView; 
@property (nonatomic, retain) IBOutlet UIPickerView *secondPickerView; 

然后在委托方法中执行类似这样的操作

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:  (NSInteger)component {
  if (pickerView == self.firstPickerView) {
  }
  else if (pickerView == self.secondPickerView) {
  }
}

或者您可以在IB中的PickerViews上设置标签并执行

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:  (NSInteger)component {
  if (pickerView.tag == 0) {

  }
  else if (pickerView.tag == 1) {
  }
}

答案 1 :(得分:1)

当调用任何委托方法时,它也会传递调用它的对象,在这种情况下可以说。

– pickerView:rowHeightForComponent:

您可以通过其TAG ID识别特定的选择器。是的,否则将被使用。