从自定义类中获取标记值

时间:2013-10-18 07:41:20

标签: iphone ios objective-c

我有这个代码,我希望它根据选定的数组文本获取标记值。

- (IBAction)Share:(UIButton*)sender
{

        menuItems =
        @[

          [KxMenuItem menuItem:@"Share"
                         image:nil
                        target:self
                        action:NULL],

          [KxMenuItem menuItem:@"Share this on Facebook"
                         image:[UIImage imageNamed:@"facebook.png"]
                        target:self
                        action:@selector(pushMenuItem:)],

          [KxMenuItem menuItem:@"Share this on Twitter"
                         image:[UIImage imageNamed:@"Twitter.png"]
                        target:self
                        action:@selector(pushMenuItem:)],


          [KxMenuItem menuItem:@"Version 1.0"
                          image:nil
                        target:self
                        action:NULL],

          ];

        first = menuItems[0];

        first.foreColor = [UIColor colorWithRed:47/255.0f green:112/255.0f blue:225/255.0f alpha:1.0];
        first.alignment = NSTextAlignmentCenter;

    [KxMenu showMenuInView:self.view fromRect:sender.frame menuItems:menuItems];


}

- (void) pushMenuItem:(id)sender
{

NSLog(@"%@",sender);

}

我想在发件人中获取标记值。如何将标记值设置为此自定义弹出类。

这里MenuItem是数组

2 个答案:

答案 0 :(得分:1)

您无法为KxMenuItem设置标记,因为它是NSObject的子类。您可以使用的一种方法是使MenuItem成为成员变量,并在action方法中获取索引,如下所示。

- (void) pushMenuItem:(id)sender
{
 NSLog(@"%@",sender);
 int index = [self.MenuItem indexOfObject:sender];
}

答案 1 :(得分:0)

如果我没错,KXMenuItem不是UIView的子类,这意味着没有tag属性可供免费使用。

但是,您可以为不同的菜单项使用不同的选择器,或者检查发件人的标题,并根据匹配的内容做出决定。例如:

- (void) pushMenuItem:(id)sender
{
   KXMenuItem *selected = (KXMenuItem*)sender;
   if ( [selected.title isEqualToString:@"Share this on Facebook"] ){
        //share on facebook
   }
   else //And so on
}