2013-10-18 123 views
0

我有这段代码我希望它根据选定的数组文本获取标记值。从自定义类获取标记值

- (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是阵列

+0

检查这个http://stackoverflow.com/questions/9146670/ios-uimenucontroller-uimenuitem-how-to-determine-item-selected-with-generic-sel/9874092#9874092可能是有帮助的ü ... – Kalpesh

回答

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 
} 
+0

谢谢,这对我来说工作得很好。 – Jitendra

1

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

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