2013-10-18 121 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]; 
} 
相關問題