我有一个关于twitter发布的警报视图。 警报视图有2个按钮和一个文本字段 发送和取消
我想禁用发送按钮,直到用户填写消息框(即文本字段)。 比如,空场验证。
如何禁用发送按钮?
答案 0 :(得分:1)
目前的SDK无法做到这一点。您必须创建自定义视图才能获取用户的输入。您正在向UIAlertView添加文本字段的事实本身是不受支持的,并且无论如何都可能在任何未来的SDK中中断。
我建议您创建一个自定义视图,如果您仍希望它看起来像UIAlertView,您可以使用适当的图像和自定义按钮来执行此操作。
答案 1 :(得分:1)
我有类似的要求,并且能够在不诉诸Apple明确禁止的任何内容的情况下(即使用私有类或API)。在下面的示例中,我找到并禁用“恢复”按钮。
注意#1 - “[提示显示]”的位置很重要。它(显然)列出了视图,因此必须在尝试查看视图层次结构之前完成。
注意#2 - “contains:”方法是我定义的一个NSString不区分大小写的子字符串搜索方法。可能在您的代码中使用rangeOfString。
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Application Warning"
message:@"What should I do with the file?"
delegate:self
cancelButtonTitle:@"Ignore"
otherButtonTitles:@"Remove", @"Recover", nil];
[alert show];
// try to find and disable "Recover" button
for(UIView *aView in alert.subviews)
{
if ([[[aView class] description] contains:@"Button"])
{
UIButton *aButton = (UIButton *)aView;
if ([aButton.titleLabel.text contains:@"Recover"])
{
aButton.enabled = NO;
}
}
}