Действительно ли возможно НЕ распустить UIAlertView

У протокола UIAlertviewDelegate есть несколько дополнительных методов включая:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;

Это, казалось бы, предложило бы, чтобы не все щелчки кнопки на самом деле отклонили аварийное представление. Однако я вижу, что никакой способ настроить аварийное представление на НЕ автоматически не отклоняет ни с какой прессой кнопки.

Я должен создать подкласс, чтобы достигнуть этого?

Почему был бы Протокол UIAlertViewDelegate иметь:

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;
- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex

И

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;

Если это произвольно не поддерживало не отклонение аварийного представления каждым щелчком кнопки?

Резюмируйте В стороне: Я понимаю то, для чего был разработан UIAlertView. Но моя цель состоит в том, чтобы позволить пользователю копировать некоторый текст к доске пасты перед выходами приложения (который происходит автоматически, когда аварийное представление отклонено.

27
задан Corey Floyd 12 January 2010 в 18:37
поделиться

2 ответа

Да. Подкласс UialertView , а затем перегрузка -DismisswithClickedButtonindex: Animated: , E.g.

@implementation MyAlertView 
-(void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated {
   if (buttonIndex should not dismiss the alert)
      return;
   [super dismissWithClickedButtonIndex:buttonIndex animated:animated];
}
@end

Неофициально Вы можете определить Вы можете определить

-(void)alertSheet:(UIAlertSheet*)sheet buttonClicked:(id)button;

метод делегата, который сделает его обход -dismisswithClickedButtonindex: анимирован: , но это недокументировано , так что я не Знайте, подходит ли это для вас.

27
ответ дан 28 November 2019 в 05:36
поделиться

willPresentAlertView:, didPresentAlertView:, alertView:willDismissWithButtonIndex:, и alertView:didDismissWithButtonIndex: предназначены для отслеживания начала и конца анимации UIAlertView.

Приложения, которые не нуждаются в отслеживании анимации UIAlertView, могут просто использовать alertView:clickedButtonAtIndex:. В документации к этому методу сказано: "приемник автоматически сбрасывается после вызова этого метода"

.
3
ответ дан 28 November 2019 в 05:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: