Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Cocoa中基于弹出值的控件条件隐藏_Macos_Cocoa_Binding_Popup - Fatal编程技术网

Macos Cocoa中基于弹出值的控件条件隐藏

Macos Cocoa中基于弹出值的控件条件隐藏,macos,cocoa,binding,popup,Macos,Cocoa,Binding,Popup,我有一个具有多个值的NSPOUP,其中一个值是custom。自定义的索引或标记不等于零。假设它是第四项,标签也是4 我如何检查自定义的选择?我想基于此选择隐藏/显示另一个控件。此其他控件应仅在选择“自定义”时显示。我希望可以使用隐藏绑定,但是如何配置它呢?我不知道是否有一种简单的方法可以通过绑定实现这一点,但是可以通过弹出窗口的操作方法轻松实现。只需根据titleOfSelectedItem的值设置其他控件的隐藏属性: -(IBAction)selectionChanged:(NSPopUpBu

我有一个具有多个值的NSPOUP,其中一个值是custom。自定义的索引或标记不等于零。假设它是第四项,标签也是4


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

我不知道是否有一种简单的方法可以通过绑定实现这一点,但是可以通过弹出窗口的操作方法轻松实现。只需根据titleOfSelectedItem的值设置其他控件的隐藏属性:

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

这是解决方案

创建一个属性onOffValue以跟踪从弹出窗口中选择的自定义项

更改onOffValue的一个操作

In.h

英寸

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

在Binding Inspector中,在Hidden选项Bind to Your Class中,在我的例子中是AppDelegate

将模型密钥路径设置为self.onOffValue

就这样

编辑:


这里是您可以下载文件以获取帮助的位置

需要一个bool来跟踪,如果弹出索引值被更改…是否有一种优雅的方法来保持bool同步,并且尽可能少的代码?我可以做一些东西,但它可能是真正需要的10倍长…这是解决方案。。。检查并回复我,我会的,谢谢。很遗憾,我要到星期五才能做这件事,但我会让你知道的。谢谢!“我会尽快试试这个。”AnoopVaidya——他问,希望是绑定——如果你仍然需要使用action方法,那么添加绑定只是额外的工作,除了使用action方法没有什么好处。我同意。但是,当有像他这样的要求时,该怎么办呢:D尽管这是一个漫长的过程,但无论如何,它必须得到解决。非常感谢你们两位的帮助。和往常一样,代码比问题简单!这两个答案都很有价值,我最终实现了rdelmar中的一个。但是@Anoop Vaidya的回答也非常有用,有详细的说明!
@property(assign) BOOL onOffValue;
- (IBAction)popUp:(id)sender;
- (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;
    }
}