3

任何人都可以帮助我防止在其按钮单击事件上解除警报视图吗?

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

4

3 回答 3

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;

The 和 the 做同样的事情if statement

于 2014-05-29T07:11:51.227 回答
3

这可能违反了不关闭 UIAlertView 的 HIG 指南。

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

于 2012-10-09T14:58:16.420 回答
1

我不确定你能不能。

- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView

是回调上唯一可用的选项。而且至少还有一个活动按钮。

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

于 2012-10-09T15:07:02.423 回答