1

我和我的朋友正在开发一个应用程序,我们完全是新手,但在书籍和护目镜方面已经走了很长一段路。

我们现在被困在这件事上。我们有一堆 texfields,我们有清除按钮与此操作相关联,但是如果您在其中一个警报视图按钮上单击“是”,我们希望调用该操作。

- (IBAction)clearText:(id)sender {

Spelare1Slag1.text = @"";
Spelare1Slag2.text = @"";

}

我们也有这个警报视图:

        alertDialog = [[UIAlertView alloc]
    initWithTitle: @"Warning"
    message: @"Do you want to delete?"
    delegate: self
    cancelButtonTitle: @"No"
    otherButtonTitles: @"Yes", nil];

- (void)alertView: (UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex {
    NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
    if ([buttonTitle isEqualToString:@"No"]) {
    }

    else if ([buttonTitle isEqualToString:@"Yes"]){
        Spelare1Slag1.text = @"";
    }

}

所以这就是我们认为我们应该这样做的方式,但是我们不知道在 else if 语句中放置什么。我们希望当您在警报视图中按“是”按钮时清除文本字段,而不是在您按“否”时清除

提前致谢!

4

4 回答 4

2

如果我正确理解问题,您可以关闭AlertView用户点击的情况。NO

你可以像这样关闭警报视图

[alertView dismissWithClickedButtonIndex:0 animated:YES];

但请确保查看NO索引是否为 0 或 1,如果您不确定,那么就这样做

[alertView dismissWithClickedButtonIndex:nil animated:YES];
于 2013-02-13T22:59:54.720 回答
2

我假设 clearText 方法是您创建的用于删除两个字段中的文本的自定义方法,对吗?因此,它应该是一个 void 方法,而不是一个 IBAction:

- (void)clearText {
Spelare1Slag1.text = @"";
Spelare1Slag2.text = @"";
}

现在您需要在 UIAlertView 委托方法中做的就是调用 clearText 方法:

- (void)alertView: (UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
  if ([buttonTitle isEqualToString:@"Yes"]){
      [self clearText];
  }
}

希望这可以帮助

于 2013-02-13T23:07:12.407 回答
1

类型方法IBAction就像任何其他方法一样,您可以直接在代码中调用它们。实际上,IBAction只是一个对void. nil通常,当需要在触发的目标/动作事件的上下文之外调用它时,您将传递一个sender 参数。

[self clearText:nil];
于 2013-02-13T23:25:05.353 回答
1

为什么需要检查实际的按钮文本?检查按钮索引是最有效的方法。如果您的 alertView 中有两个字段,只需检查索引是 0 还是 1 就可以了。你做额外的工作来检查实际的文本。

顺便说一句,如果您在按下否时不需要执行任何特定操作,只需检查“是”按钮的索引即可。(如果不需要,不要检查两个索引)。

于 2013-02-14T00:54:59.210 回答