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;
}
所以我有两个问题
检查哪个字段开始编辑 您应该研究
UITextField
s的Delegate
方法。只需将所有字段的委托设置为self
,即创建文本字段的控制器。然后实现UITextField
delegate方法
- (void)textFieldDidBeginEditing:(UITextField*)textField;
在方法中,检查传入参数textField
的标记以执行任务
启用禁用字段
将所有字段放入
NSMutableArray
中,迭代该数组并仅启用与委托参数匹配的字段。禁用其余部分。[scrollView视图WithTag:1]
将始终为您提供带有tag1
的子视图,该子视图与代码片段后面的文本视图相同。如果你想浏览所有的文本视图,你可以用
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中选择文件所有者
或atviewDidLoad
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];
}
.......
}
}
}