基于Cocoa中的PopUp值有条件地隐藏控件

时间:2012-12-11 15:38:23

标签: macos cocoa binding popup

我有一个NSPopUp有几个值,其中一个是“自定义”。自定义没有索引或标记等于零。假设这是第四项,标签也是4.

如何检查“自定义”的选择?我想隐藏/显示基于此选择的另一个控件。只有在我选择“自定义”时才会出现此其他控件。我希望可以使用“隐藏”绑定,但是如何配置呢?

2 个答案:

答案 0 :(得分:1)

我不知道是否有一种简单的方法可以使用绑定来完成此操作,但可以使用弹出窗口的操作方法轻松完成。只需根据titleOfSelectedItem的值设置其他控件的隐藏属性:

-(IBAction)selectionChanged:(NSPopUpButton *)sender {
    if ([sender.titleOfSelectedItem isEqualToString:@"Custom"]){
        self.otherControl.hidden = YES;
    }else{
        self.otherControl.hidden = NO;
    }
}

答案 1 :(得分:1)

这是解决方案......

创建一个属性“onOffValue”以跟踪弹出窗口中“Custom”的选择。

改变onOffValue的一个动作。

在.h

@property(assign) BOOL onOffValue;
- (IBAction)popUp:(id)sender;

在.m

- (id)init
{
    self = [super init];
    if (self) {
        self.onOffValue=NO;
    }
    return self;
}

- (IBAction)popUp:(id)sender {
    if ([[sender title]isEqualToString:@"Custom"]) {
        self.onOffValue=NO;
    }
    else{
        self.onOffValue=YES;
    }
}

在IB中,选择要隐藏的控件 - 取消隐藏。

在Binding Inspector中,在隐藏选项中绑定到您的类(在我的情况下是AppDelegate)

将模型关键路径设置为self.onOffValue

多数民众赞成!

编辑: enter image description here

以下是link,您可以在此处下载文件以获取帮助......