Будут отключение кнопки UIAlertView получить мое приложение отклонили?


Я использую AlertView с подвидом UITextView, чтобы пользователи могли отвечать на сообщения в моем приложении, но я хочу, чтобы кнопка ответа оповещения отключалась, когда пользователь вводит больше, чем ограничение символов. Будет ли отключение кнопки просмотра предупреждений, как это получить мое приложение отклонено, есть ли лучший способ сделать это?

-(void)textViewDidChange:(UITextView *)textView {
    if (!replyAlert) {
        return;
    }

    //character count
    replyAlert.title = [NSString stringWithFormat:@"Reply to Post (%i/250)", [textView.text length]];
    if ([textView.text length]>=250) {
        //disable alert view button
        for (UIView* view in [replyAlert subviews])
        {
            if ([[[view class] description] isEqualToString:@"UIAlertButton"])
            {
                UIButton *button = (UIButton*)view;
                if ([button.titleLabel.text isEqualToString:@"Reply"]) {
                    //disable
                    button.enabled = NO;
                }
            }
        }
    } else if ([textView.text length]==249) {
        //re-enable button if user deleted a character
        for (UIView* view in [replyAlert subviews])
        {
            if ([[[view class] description] isEqualToString:@"UIAlertButton"])
            {
                UIButton *button = (UIButton*)view;
                if ([button.titleLabel.text isEqualToString:@"Reply"]) {
                    //enable
                    button.enabled = YES;
                }
            }
        }
    }
}
1 2

1 ответ:

Посмотрите на этот метод на делегате (UIAlertViewDelegate)

- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView

Этот метод будет вызываться каждый раз, когда пользователь вводит символ в текстовое поле в представлении предупреждений, предполагая, что вы используете UIAlertViewStylePlainTextInput (?). Таким образом, в этом методе вы можете проверить длину текста в текстовом поле и вернуть TRUE/FALSE соответственно.

Этот метод доступен только в iOS 5.0 или более поздней версии, что может быть проблемой при поддержке более старых версий.

Если вы если вы добавляете свои собственные текстовые поля в виде вложенных представлений в представление предупреждений, то это само по себе является причиной отклонения приложения, поскольку оно утверждает, что иерархия представлений не подлежит манипулированию. Если вы используете стиль ввода текста alert view out-of-box и просто перемещаетесь по подвидам, чтобы проверить заголовки кнопок и отключить их, я был бы удивлен (обратите внимание, что это субъективное мнение), если бы это вызвало отклонение приложения.