Iphone 如何检查“上的值”;带标记的UITextField;按下/触摸或单击哪个文本字段标记?

Iphone 如何检查“上的值”;带标记的UITextField;按下/触摸或单击哪个文本字段标记?,iphone,objective-c,ios,xcode,Iphone,Objective C,Ios,Xcode,我有以下代码 for (j=0; j<20; j++) { if (j<20) { txtField = [[UITextField alloc] initWithFrame:CGRectMake(110, txt_Pos_Y, 100, 15)]; txtField.borderStyle = UITextBorderStyleRoundedRect; txtField.font = [UIFont systemFontOfSize:11];

我有以下代码

for (j=0; j<20; j++) {

    if (j<20) {



    txtField = [[UITextField alloc] initWithFrame:CGRectMake(110, txt_Pos_Y, 100, 15)];
    txtField.borderStyle = UITextBorderStyleRoundedRect;
    txtField.font = [UIFont systemFontOfSize:11];
    txtField.tag = j;
    txtField.placeholder = @"Enter Value";
    txtField.autocorrectionType = UITextAutocorrectionTypeNo;
    txtField.keyboardType = UIKeyboardTypeDefault;

    txtField.returnKeyType = UIReturnKeyDone;
    txtField.clearButtonMode = UITextFieldViewModeWhileEditing;
    txtField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;    
    txtField.delegate = self;
    [scrollView addSubview:txtField];
    [txtField release];      


    txt_Pos_Y  = txt_Pos_Y  + 20; 
    }
所以我有两个问题

  • 我想,我首先点击哪个文本字段,只有那个文本字段是可编辑的,其余的是不可编辑的,怎么做

  • 单击/触摸/按下哪个文本字段,就像我在CalculateMethod()方法中尝试的那样


  • 检查哪个字段开始编辑

    您应该研究
    UITextField
    s的
    Delegate
    方法。只需将所有字段的委托设置为
    self
    ,即创建文本字段的控制器。然后实现
    UITextField
    delegate方法

    - (void)textFieldDidBeginEditing:(UITextField*)textField;
    
    在方法中,检查传入参数
    textField
    的标记以执行任务

    启用禁用字段


    将所有字段放入
    NSMutableArray
    中,迭代该数组并仅启用与委托参数匹配的字段。禁用其余部分。

    [scrollView视图WithTag:1]
    将始终为您提供带有tag
    1
    的子视图,该子视图与代码片段后面的文本视图相同。如果你想浏览所有的文本视图,你可以用

    for (UIView* aSubview in [self.scrollView subviews])
    {
        if ([aSubview isKindOfClass:[UITextView class]])
        {
                UITextView * typedTextViewSubview = aSubview;
                switch (typedTextViewSubview.tag)
                {
                case 1 : {
                   double a;
                   a = Var_sqFt * Var_sqMtr;
                   typedTextViewSubview.text = [[NSString alloc] initWithFormat:@"%.4f",a];
    
    
                 }
           .......
                }
    
        }
    }
    

    如果(jSir我想知道单击了哪个TextField标记?如何知道?@Areeba Khan)你已经得到了上面的答案,我的希望能为你将来的工作提供一点帮助。正如另一个答案所说,你使用委托方法将触摸到的textView作为发送者(caste to class
    id
    )通过我的答案中的一个小循环,您可以获得所有其他文本视图,或者您可以将所有文本视图存储在数组中以节省搜索时间。希望这能有所帮助。正如另一个答案所说,您使用委托方法以发送者身份获取被触摸的文本视图(caste to class id)通过我的回答中的一个小循环,您可以获得所有其他textView,或者您可以将它们存储在数组中以节省搜索时间。如何执行此操作?@Areeba Khan首先,您需要设置textView委托,您可以在
    界面生成器
    视图加载
    中执行此操作,如果您在视图控件中有outlet属性呃。通常对于文本视图,viewController本身被用作委托,因此您需要在
    IB
    tv.delegate=self中选择
    文件所有者
    at
    viewDidLoad
    Sir执行任务的方法中检查传入参数textField的标记如何检查标记?我尝试过,如果(txtfield.Tag==1){…Something….},此条件不执行,编译器也不在此条件下输入,即使我在“txtfield.Tag=1”上输入值,它也应该可以工作。尝试使用
    NSLog(@“标记是%I”,textField.Tag)记录标记值
    以确保您具有正确的
    if
    条件
    for (UIView* aSubview in [self.scrollView subviews])
    {
        if ([aSubview isKindOfClass:[UITextView class]])
        {
                UITextView * typedTextViewSubview = aSubview;
                switch (typedTextViewSubview.tag)
                {
                case 1 : {
                   double a;
                   a = Var_sqFt * Var_sqMtr;
                   typedTextViewSubview.text = [[NSString alloc] initWithFormat:@"%.4f",a];
    
    
                 }
           .......
                }
    
        }
    }