iphone - textFieldDidEndEditing 替代方案

标签 iphone xcode ios uibutton uitextfield

您好,我正在使用以下代码来禁用 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/

相关文章:

ios - 在 StoryBoard TabBar 上设置托管对象上下文 - 具有嵌入式导航 Controller 的 TableView Controller

objective-c - 从文件读取内容时,NSInputStream 不会发生 NSStreamEventEndEncountered

ios - Xamarin.IOS : Can't load image from Images. xcassets

iphone - 数据源为 UIImagePickerControllerSourceTypeCamera 的 UIImagePickerController 的 View 移动问题

iphone - 为什么我的对象在调试器中显示为结构体?

ios - 使用 Cocoapods 安装 Firestore

ios - 什么是 libswiftRemoteMirror.dylib,为什么它包含在我的应用程序包中?

iphone - 如何在 UINavigationController 中添加多行标题栏

iphone - 在方法中运行时,从 nib 加载的 View 不会更新 UILabel 的内容

iphone - 原则上,Android 设备是否可以通过蓝牙/GameKit 与 iPhone 交互?