gpt4 book ai didi

ios - 当另一个警报出现时,alertview 关闭

转载 作者:行者123 更新时间:2023-11-28 22:25:04 24 4
gpt4 key购买 nike

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"......" message:@"......" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:@"OK", nil];

[alert show];

我正在显示警报 View 以使用警报 View 的文本字段添加新类别,当用户录制警报的确定按钮时,我首先检查用户是否输入了任何内容,如果没有,则显示另一个警报消息让用户知道文本字段是必填的,但之前添加新类别的警告消失了。

我希望该警报保留在屏幕上。所以我该怎么做 ??

这是崩溃报告和代码::

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Add Vehicle Category" message:@"this gets covered!" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:@"OK", nil];
alert.tag = 5;

txtAddVehicleCategory = [[UITextField alloc]initWithFrame:CGRectMake(12, 45, 260, 25)];

[txtAddVehicleCategory setBackgroundColor:[UIColor whiteColor]];

txtAddVehicleCategory.placeholder = @"Enter Vehicle Category";

txtAddVehicleCategory.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;

[alert addSubview:txtAddVehicleCategory];


CGAffineTransform myTransform = CGAffineTransformMakeTranslation(0, -50);

[alert setTransform:myTransform];

[alert show];

'NSInvalidArgumentException',原因:'textFieldIndex (0) 超出了文本字段数组的范围'

最佳答案

当您想要在 UIAlertView 中实现一些输入文本的规则时,您应该禁用警报 View 的 OK 按钮,直到用户遵循这些规则。您可以使用 UIAlertViewDelegate 方法实现此目的。查看alertViewShouldEnableFirstOtherButton: .

从方法中返回NO直到遵循规则

- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView
{
// When return NO, OK button is disabled.
// When return YES, rule is followed and OK button gets enabled.
return ([[[alertView textFieldAtIndex:0] text] length]>0)?YES:NO;
}

编辑

我提供的代码假设您使用的是默认警报 View 样式文本字段,因此会发生崩溃。

您不应该addSubviewUIAlertView,因为警报 View 的 View 层次结构是私有(private)的。最近iOS7 will not display any subviews该用户添加了 UIAlertView。所以我建议您不要这样做。

来自 Apple docs ,

The UIAlertView class is intended to be used as-is and does not support subclassing. The view hierarchy for this class is private and must not be modified.

相反,请使用 UIAlertViewStyle

以下是支持的样式,

typedef enum {
UIAlertViewStyleDefault = 0,
UIAlertViewStyleSecureTextInput,
UIAlertViewStylePlainTextInput,
UIAlertViewStyleLoginAndPasswordInput
} UIAlertViewStyle;

使用适合您要求的那个。要验证用户输入的输入,请使用我建议的上述方法。引用this simple guide/tutorial使用具有这些样式的警报 View 。

希望对您有所帮助!

关于ios - 当另一个警报出现时,alertview 关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19219354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com