2

我正在制作一个应用程序,其中我有一个视图,我可以在其中显示朋友的详细信息。所以,如果我需要更改细节。我将不得不检查标签以更改它。在这里,我为每个标签设置了标签值。

如果用户按下标签,新的文本字段将出现在视图上,用户可以更改详细信息。

因此,为此我编写了触摸开始方法,在该方法中我正在检查触摸值...但是每当我触摸任何标签时,我都会将视图的标签值设为零,而我应该在其中获取标签的标签值我点击了。

我的代码如下所示...

txtTmp = [[UITextField alloc] init];    

//txtTmp is the textfield which should appear as super view of the label where i have clicked

    txtTmp.delegate=self;

self.lblName.tag=11;

UITouch *touch = [touches anyObject]; 

//在这里,即使我启用了用户交互,我也会将标签值设为 0...

NSLog(@"view.tag = %d",touch.view.tag);

if(touch.view.tag==11) {



    [txtTmp setFrame:CGRectMake(162, 43, 138, 50)];
    txtTmp.text=lblName.text;
    [self.view addSubview:txtTmp];
    [txtTmp becomeFirstResponder];
    temp=1;



}

如果你对我的问题有任何问题..请回复我....

谢谢,

4

1 回答 1

5

您应该启用 self.lblName 的用户交互。

   [self.lblName setUserInteractionEnabled:YES];

您还可以使用 viewWithTag 消息在 touchesbegan 方法中检查触摸标签:

UITouch *touch = [touches anyObject];

if(touch.view == [self.view viewWithTag:11]) 
{
    [txtTmp setFrame:CGRectMake(162, 43, 138, 50)];
    txtTmp.text=lblName.text;
    [self.view addSubview:txtTmp];
    [txtTmp becomeFirstResponder];
    temp=1;
}
于 2012-05-07T06:15:13.657 回答