保持显示UIAlertView

Ser*_*iuc 2 objective-c uialertview ios

我有一个带有textField的UIAlertView和两个按钮:Save&Cancel.点击"保存"按钮时,我正在检查文本字段是否为空,如果是,我只想将textFields占位符更改为:@"请输入名称"并在屏幕上保留警报视图.但它会自动被驳回.

我该如何覆盖呢?

bre*_*dan 6

将目标添加到子类alertView中的文本字段.您可以继承alertView,而不是像本文中所述那样解散

[[alertView textFieldAtIndex:0] addTarget:self action:@selector(textFieldDidChange) forControlEvents:UIControlEventEditingChanged];
Run Code Online (Sandbox Code Playgroud)

然后编写一个名为textFieldDidChange的函数,该函数检查alertView的当前文本字段并设置一个布尔值,以便您知道是否关闭警报.

- (void) textFieldDidChange
{
  NSString *alertViewText = [[alertView textFieldAtIndex:0] text];

  if ([alertViewText isEqualToString:@""]) {
    [alertView setMessage:@"Enter a name please."];
  } else {
    [alertView setMessage:@"Default Message"];
  }
}
Run Code Online (Sandbox Code Playgroud)

*或者,我建议在它为空时禁用"保存",而不是必须子类.*

- (void) textFieldDidChange
{
  NSString *alertViewText = [[alertView textFieldAtIndex:0] text];

  if ([alertViewText isEqualToString:@""]) {
    [alertView setMessage:@"Enter a name please."];
    for (UIViewController *view in alertView.subview) {
       if ([view isKindOfClass:[UIButton class]]) {
          UIButton *button = (UIButton *)view;
          if ([[[button titleLabel] text] isEqualToString:@"Save"])
             [button setEnabled:NO];
       }      
    }
  } else {
    [alertView setMessage:@"Default Message"];
    for (UIViewController *view in alertView.subview) {
       if ([view isKindOfClass:[UIButton class]]) {
          UIButton *button = (UIButton *)view;
          if ([[[button titleLabel] text] isEqualToString:@"Save"])
             [button setEnabled:YES];
       }      
    }
  }
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

2442 次

最近记录:

14 年,7 月 前