gpt4 book ai didi

iphone - textFieldDidEndEditing 替代方案

转载 作者:行者123 更新时间:2023-11-28 23:16:19 27 4
gpt4 key购买 nike

您好,我正在使用以下代码来禁用 2 个 UIButtons,直到四个 UITextField 中有数据

- (void)textFieldDidBeginEditing:(UITextField *)textField {


if (([brand.text length] >0) && ([qty.text length] >0) && ([size.text length] >0) && ([price.text length] >0)) {
[calcOneButton setEnabled:YES];
[calcTwoButton setEnabled:YES];

}
if (([brand.text length] ==0) || ([qty.text length] ==0) || ([size.text length] ==0) || ([price.text length] ==0)){

[calcOneButton setEnabled:NO];
[calcTwoButton setEnabled:NO];
}

}

- (void)textFieldDidEndEditing:(UITextField *)textField {

int ebtl = [brand.text length];
int eqtl = [qty.text length];
int estl = [size.text length];
int eptl = [price.text length];
NSLog(@"ebtl = %d eqtl = %d estl = %d eptl = %d",ebtl, eqtl, estl, eptl);

if (([brand.text length] ==0) || ([qty.text length] ==0) || ([size.text length] ==0) || ([price.text length] ==0)){
[calcOneButton setEnabled:NO];
[calcTwoButton setEnabled:NO];
}
if (([brand.text length] >0) && ([qty.text length] >0) && ([size.text length] >0) && ([price.text length] >0)) {
[calcOneButton setEnabled:YES];
[calcTwoButton setEnabled:YES];
}

我的问题是 textFieldDidEndEditing 在用户离开 textField 之前不会被调用。这需要点击屏幕然后按钮有没有办法避免这种情况,所以按钮将立即启用?

最佳答案

只有当用户点击远离 textField 时,按钮才会激活。如果您使用弹出的普通键盘,请使用键盘上的 DONE 按钮摆脱键盘,然后在键盘自行退出时编写 IBAction,然后启用您的按钮。

- (BOOL) textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder]; //enable your buttons after this
return 1;
}

或使用 IBAction:

-(IBAction) textFieldFinishedDone: (id) sender; // enable your buttons after this

只有当所有文本字段都被填充时,按钮才必须激活,对吗?你可以这样做。注释掉你上面写的两个函数。使用 IBAction,每当您按下 DONE 并退出键盘时,检查所有文本字段的状态。使用 if-else block ,让您的按钮在所有文本字段完成后显示。

关于iphone - textFieldDidEndEditing 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6243862/

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