我一直在尝试实现将触发UITextField的检查。以下是我对前两个文本字段的调查结果。这给了我两个错误,显示“发送者未声明”...我哪里做错了?提前感谢,属性和合成都可以!val是caLculator按钮的标签值(如0,1,2,3,4,5,6,7,8,9)
//.h file
IBOutlet UITextField *textFieldLoanAmountDisplay;
IBOutlet UITextField *textFieldInitDepositDisplay;
// .m file
const NSString *textField1Code= @"1";
const NSString *textField2Code= @"2";
-(BOOL)textField1ShouldBeginEditing:(UITextField *)textFieldLoanAmountDisplay {
    if (textFieldLoanAmountDisplay == textField1Code) 
    {
        UIButton *buttonPressed = (UIButton *)sender;
        int val = buttonPressed.tag;
        if ( [textFieldLoanAmountDisplay.text compare:@"0"] == 0 ) {
            textFieldLoanAmountDisplay.text = [NSString stringWithFormat:@"%d", val ];
        } else {
            textFieldLoanAmountDisplay.text = [NSString stringWithFormat:@"%@%d", textFieldLoanAmountDisplay.text, val ];
        }
    }
    return NO;    
}
-(BOOL)textField2ShouldBeginEditing:(UITextField *)textFieldInitDepositDisplay {
    if (textFieldInitDepositDisplay == textField2Code) 
    {
        UIButton *buttonPressed = (UIButton *)sender;
        int val = buttonPressed.tag;
        if ( [textFieldInitDepositDisplay.text compare:@"0"] == 0 ) {
            textFieldInitDepositDisplay.text = [NSString stringWithFormat:@"%d", val ];
        } else {
            textFieldInitDepositDisplay.text = [NSString stringWithFormat:@"%@%d", textFieldInitDepositDisplay.text, val ];
        }
    }
    return NO;
}发布于 2011-03-16 06:24:31
您还没有真正解释您的问题是什么,但仅通过查看您的代码,您使用了不正确的委托方法名称。对于每个UITextField实例,不需要单独的textFieldShouldBeginEditing:。
在视图控制器类接口文件中,确保使用以下命令声明符合UITextFieldDelegate方法:
@interface XXXXX : XXXXXX <UITextFieldDelegate>然后,在您的实现中使用
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField如果您像上面指出的那样使用不同的标记设置textField实例,只需使用Switch语句来找出哪个textField正在调用该方法:
switch (textField.tag)
{
    case tagValue1:
    // Implement your logic here
    break;
    case tagValue2:
    // Implement your logic here
    break;
    ...
}https://stackoverflow.com/questions/5318595
复制相似问题