Iphone 当我选择UIPickerView的任何一行时,如何执行特定操作?

Iphone 当我选择UIPickerView的任何一行时,如何执行特定操作?,iphone,objective-c,row,uipickerview,Iphone,Objective C,Row,Uipickerview,我写的代码就像 - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { int n=row+1; if(row == 0) return [NSString stringWithFormat:@"%d minute", n]; return [NSString stringWithF

我写的代码就像

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

    int n=row+1;
    if(row == 0)
        return [NSString stringWithFormat:@"%d minute", n];
    return [NSString stringWithFormat:@"%d minutes", n];
}

现在我想在我选择任何一行时启动计时器,比如第5行有5个薄荷糖,所以我想用5个薄荷糖启动计时器,那么我该怎么做,我如何选择特定的行并按下按钮,计时器就可以启动该事件呢?

如果你进入谷歌,键入你的类名称和“类引用”的话,以后就可以启动计时器了你通常可以在苹果网站上找到你需要的信息

例如,我刚进入google并键入“UIPickerView类引用”,然后来到这里:

在该网站上,如果您阅读了说明,则说明“代表必须采用UIPickerViewDelegate协议”,如果您单击此处,则说明在“任务”下:

响应行选择- 这是您需要实现的委托方法,当用户选择一行时将调用该方法。如果你点击它,它会给出一个小的描述等等

如果转到“说明”,则完整方法为:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
因此,当用户选择一行时,将调用此方法,并将pickerView自动传递到该方法中

然后可以获取用户选择的行。如果返回UIPickerView类引用的页面,您会看到:

在视图选择器中选择行 方法
selectedRowUncomponent:
就是您想要的方法。因此,在委托方法中,您可以执行以下操作:

int selectedRow = (int)[pickerView selectedRowInComponent:0];
:)当我想找到这样问题的答案时,我就是这么做的


编辑:


假设您已经实现了UIPickerViewDelegate协议,下面是Thomas Clayson答案的Swift 5版本:

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    let selectedRow = pickerView.selectedRow(inComponent: 0)
    print(selectedRow)
}

我同意你的答案,但你能告诉我一行代码,在任何一行都会显示警告信息吗?我已经编辑了我的答案,并在最后放上了你需要的内容。这将记录用户选择的行。如果要显示警报,可以使用UIAlertView类。它们会高亮显示并呈蓝色,但NSLog中没有显示任何内容,也使用了UIAlertView,但两者都不在这里工作,现在该怎么办,请再次检查。是否将类设置为uipickerview委托,并将uipickerview的委托属性设置为
self
?还有一个大问题,现在它很好,工作正常,thanx,我接受了你的回答:-)
int selectedRow = (int)[pickerView selectedRowInComponent:0];
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    int selectedRow = (int)[pickerView selectedRowInComponent:0];
    NSLog(@"%i",selectedRow);
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    let selectedRow = pickerView.selectedRow(inComponent: 0)
    print(selectedRow)
}