2012-11-25 62 views
-2

我的程序中有很多自定义按钮,我需要使用方法来获取它们的名称。我已经想出了如何通过他们的标签获取他们的名字,但只有一个指向它的指针。我需要的是一个字符串中的名字。将UIButton对象名称转换为字符串格式

我使用的是什么样的继承人:

-(void)pickRandomToHide { 
    for (int check = 1; check <=5; check++) 
    { 
     int eventNumber = 1 + arc4random() % 43; 
     UIButton *pick; 
     pick = (UIButton *)[_mapImageView viewWithTag:eventNumber]; 
     [pick setAlpha: 0.5]; 
     NSString *buttonName; 
     buttonName = [pick currentTitle]; 
     NSLog(@"%@",buttonName); 
    } 
} 

的NSLog的只是给 '空' 的五倍。但5个按钮正在消失,所以开始工作。

回答

1

如果我理解正确,您希望能够检索您分配对象的变量名称。
这是不可能的,因为在编译过程中变量名将被其他符号替换。

而且它只是没有必要,因为你总是可以跟踪的指针。如果你的代码取决于变量名称,你做了一些可怕的错误。

+0

啊好吧谢谢,我想我不得不为每个按钮设置一个标题。我没有做错任何事情,我只需要按钮来更改事件上的图片。图像是按钮名称+颜色在结尾处,所以我想我只是检索对象名称并将颜色附加到它,然后将其用于setBackGroundImage: – PappaSmalls

1

你是指什么按钮的“名称”?你的意思是它上面的文字?你可以使用UIButton的textLabel属性,它将返回一个UILabel。然后,您可以阅读该标签的text属性以获取该按钮的标题。总之:

NSString *buttonName = pick.titleLabel.text; 
+1

标签被称为'titleLabel'and我觉得这个代码与currentTitle方法 – Felix

+0

@Scott不一样的效果,我希望得到实际的UIButton的对象名称。所以如果UIButton * button1;我想buttonName = @“button1”;从我的例子。 – PappaSmalls