Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 检查将触发哪个UITextField(textFieldShouldBeginEditing)_Objective C_Uitextfield_Uitextfielddelegate - Fatal编程技术网

Objective c 检查将触发哪个UITextField(textFieldShouldBeginEditing)

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取决于委托模式,因此它希望某个方法由其委托实现,并且该方法必须正确命名。

我一直在尝试执行将触发哪个UITextField的检查。 以下是我对前两个文本字段的调查结果。 这给了我两个错误,说“发件人未声明”。。。 我哪里做错了? 提前谢谢 性质和合成都可以! val是计算器按钮的标记值。(例如0,1,2,3,4,5,6,7,8,9)


正确遵守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;
    ...
}