Ser*_*iuc 2 objective-c uialertview ios
我有一个带有textField的UIAlertView和两个按钮:Save&Cancel.点击"保存"按钮时,我正在检查文本字段是否为空,如果是,我只想将textFields占位符更改为:@"请输入名称"并在屏幕上保留警报视图.但它会自动被驳回.
我该如何覆盖呢?
将目标添加到子类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 次 |
| 最近记录: |