防止AlertView被解雇

时间:2012-10-09 14:49:53

标签: objective-c ios uialertview

任何人都可以帮我防止在按钮点击事件中解除alertview吗?

我有一个textview作为我的alertView的子视图,如果textview的值为nil,我不想忽略它。

3 个答案:

答案 0 :(得分:4)

由于这是一个非常古老的问题,但我得到了一个解决方案,但是如果其他开发人员在不久的将来需要发布的话。

在.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;
    }
}

或者,有一种更快的方法:

return [inputText length] ? YES : NO;

if statement的作用相同。

答案 1 :(得分:3)

这可能违反HIG指南,不解雇UIAlertView。

替代方法:我不知道您的应用中发生了什么,但为了实现这一点,您可以做的是关闭AlertView,然后检查textView的文本是否已设置。如果设置为nil,则再次调出alertview!

答案 2 :(得分:1)

我不确定你能不能。

- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView

是callBack上唯一可用的选项。并且仍然至少有一个活动按钮。

如果您确实需要这种特定行为,请尝试重新实现您自己的UIAlertView