我有这个代码,我希望它根据选定的数组文本获取标记值。
- (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 :(得分: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
}