gpt4 book ai didi

ios - 在 UITextField UIControlEventEditingDidBegin 上调用 UIAlertView 会关闭键盘

转载 作者:行者123 更新时间:2023-12-01 17:51:14 25 4
gpt4 key购买 nike

我注意到一些非常奇怪的行为。我想在选择 UITextField 时显示 UIAlertView:

[self.addressTextField addTarget:self action:@selector(addressTextFieldSelected) forControlEvents:UIControlEventEditingDidBegin];

被调用的方法是:
- (void)addressTextFieldSelected {

if (!geoPoint) {

UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Text" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertView show];

}

}

触摸 textField 时,键盘确实开始向上滑动。然而,当 alertView 出现时,键盘消失。选择“确定”并关闭 alertView 后,文本字段的键盘会向上滑动。

编辑

在其他人的帮助下,我创建了这项工作,尽管我对键盘首先消失有点不满意。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {

if (textField.tag == 2) {

if (!geoPoint && !justShowedGeoPointAlert) {

showingGeoPointAlert = YES;

UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Make sure to geotag this address." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertView show];

return NO;

} else {

justShowedGeoPointAlert = NO;

}

}

return YES;

}

- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex {

if (showingGeoPointAlert) {

justShowedGeoPointAlert = YES;
showingGeoPointAlert = NO;
[self.addressTextField becomeFirstResponder];

}

}

最佳答案

实现以下 UITextField 的委托(delegate)方法:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;

在该方法中显示警报 View ,在该方法中返回 NO,键盘将不显示。

然后实现如下 UIAlertView 的委托(delegate)方法:
- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex;

在此方法中,显示键盘:
[self.addressTextField becomeFirstResponder];

关于ios - 在 UITextField UIControlEventEditingDidBegin 上调用 UIAlertView 会关闭键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29966082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com