我使用UIAlertView
提示用户输入密码。如果密码正确,我希望警报视图正常消失;如果密码不正确,我希望保留警报视图(文本更改为“请再试一次。”)。如何更改默认行为,以便在按下按钮时视图不会消失?
我已尝试在Is it possible to NOT dismiss a UIAlertView建议的子类化方法,但dismissWithClickedButtonIndex
未在我的子类中调用。阅读文档后,我发现不支持子类化UIAlertView
,所以我想尝试另一种方法。
如果UIAlertView
无法做到这一点,那么从头开始简单地进行密码查看是最佳选择吗?谢谢你的阅读。
答案 0 :(得分:5)
由于这是一个非常古老的问题,但我得到了一个解决方案,但是如果其他开发人员在不久的将来需要发布的话。
在.h文件中实施协议方法
为了响应UIAlertView中的按钮点击,我们将使用 - alertView:clickedButtonAtIndex:协议方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
}
//Now below code will check if uitextfield value.
- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView
{
NSString *inputText = [[alertView textFieldAtIndex:0] text];
if( [inputText length] > 0)
{
//text field value is greater than zero ,then Done button will appear as blue,or else it will be blurred
return YES;
}
else
{
return NO;
}
}
答案 1 :(得分:3)
你可以设计一个类似于alertview的 UIView ,并可以调用其中的函数。删除UIView由您控制。
答案 2 :(得分:1)
单击按钮时,无法将警报保留在那里。
如果要在本地检查密码,或者稍后再显示其他警报,则可以通过委派方法alertViewShouldEnableFirstOtherButton:
禁用“确定”按钮。第二个警报可以包含不同的信息,例如“密码不正确”而不是“输入密码”。