首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查将触发哪些UITextField (textFieldShouldBeginEditing)

检查将触发哪些UITextField (textFieldShouldBeginEditing)
EN

Stack Overflow用户
提问于 2011-03-16 05:56:59
回答 2查看 3.1K关注 0票数 1

我一直在尝试实现将触发UITextField的检查。以下是我对前两个文本字段的调查结果。这给了我两个错误,显示“发送者未声明”...我哪里做错了?提前感谢,属性和合成都可以!val是caLculator按钮的标签值(如0,1,2,3,4,5,6,7,8,9)

代码语言:javascript
复制
//.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;
}
EN

Stack Overflow用户

发布于 2011-03-16 06:24:31

您还没有真正解释您的问题是什么,但仅通过查看您的代码,您使用了不正确的委托方法名称。对于每个UITextField实例,不需要单独的textFieldShouldBeginEditing:。

在视图控制器类接口文件中,确保使用以下命令声明符合UITextFieldDelegate方法:

代码语言:javascript
复制
@interface XXXXX : XXXXXX <UITextFieldDelegate>

然后,在您的实现中使用

代码语言:javascript
复制
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

如果您像上面指出的那样使用不同的标记设置textField实例,只需使用Switch语句来找出哪个textField正在调用该方法:

代码语言:javascript
复制
switch (textField.tag)
{
    case tagValue1:
    // Implement your logic here
    break;
    case tagValue2:
    // Implement your logic here
    break;
    ...
}
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5318595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档