Objective c 检查将触发哪个UITextField(textFieldShouldBeginEditing)
我一直在尝试执行将触发哪个UITextField的检查。 以下是我对前两个文本字段的调查结果。 这给了我两个错误,说“发件人未声明”。。。 我哪里做错了? 提前谢谢 性质和合成都可以! val是计算器按钮的标记值。(例如0,1,2,3,4,5,6,7,8,9)Objective c 检查将触发哪个UITextField(textFieldShouldBeginEditing),objective-c,uitextfield,uitextfielddelegate,Objective C,Uitextfield,Uitextfielddelegate,我一直在尝试执行将触发哪个UITextField的检查。 以下是我对前两个文本字段的调查结果。 这给了我两个错误,说“发件人未声明”。。。 我哪里做错了? 提前谢谢 性质和合成都可以! val是计算器按钮的标记值。(例如0,1,2,3,4,5,6,7,8,9) 正确遵守UITextFieldDelegate协议。textFieldShouldBeginEditing将由两个UITextFields调用。UITextfield取决于委托模式,因此它希望某个方法由其委托实现,并且该方法必须正确命名。
正确遵守UITextFieldDelegate协议。textFieldShouldBeginEditing将由两个UITextFields调用。UITextfield取决于委托模式,因此它希望某个方法由其委托实现,并且该方法必须正确命名。您尝试使用的是目标操作模式,例如UIButtons使用的模式
要找出调用了哪一个,可以使用传递给该方法的UITextfield参数。不要忘记设置委托。您还没有真正解释问题所在,但仅通过查看代码,您使用的委托方法名称不正确。对于每个UITextField实例,不需要单独的textfield shouldbeginediting: 在视图控制器类接口文件中,确保声明符合以下UITextFieldDelegate方法:
@interface XXXXX : XXXXXX <UITextFieldDelegate>
如果您使用不同的标记设置textField实例,如上面所示,只需使用switch语句找出哪个textField正在调用该方法:
switch (textField.tag)
{
case tagValue1:
// Implement your logic here
break;
case tagValue2:
// Implement your logic here
break;
...
}
请重新格式化您的代码-
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
switch (textField.tag)
{
case tagValue1:
// Implement your logic here
break;
case tagValue2:
// Implement your logic here
break;
...
}