Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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
Objective c 创建OSX搜索筛选器面板_Objective C_Cocoa_Search_Interface Builder - Fatal编程技术网

Objective c 创建OSX搜索筛选器面板

Objective c 创建OSX搜索筛选器面板,objective-c,cocoa,search,interface-builder,Objective C,Cocoa,Search,Interface Builder,我附加了一个Mac Os X功能的图像,并试图复制它。主要是Mac Os X的“搜索”功能 特别是如何通过按(+)按钮添加更多条件来缩小搜索结果的范围 使用XCode和界面生成器,复制其工作原理的最佳方法是什么 我提议的计划: 创建带有“2列”的NSTableView(基于视图的表)。一个用于包含内容,另一个用于(+)和(-)按钮。将删除scrollView上的标题和滚动条。 创建NSTableViewCell和子类以使用iBouts和IBActions访问其控件。将其放入列“1”。 使用Po

我附加了一个Mac Os X功能的图像,并试图复制它。主要是Mac Os X的“搜索”功能

特别是如何通过按(+)按钮添加更多条件来缩小搜索结果的范围

使用XCode界面生成器,复制其工作原理的最佳方法是什么

我提议的计划:

  • 创建带有“2列”的
    NSTableView
    (基于视图的表)。一个用于包含内容,另一个用于(+)和(-)按钮。将删除scrollView上的标题和滚动条。

  • 创建
    NSTableViewCell
    子类
    以使用iBouts和IBActions访问其控件。将其放入列“1”。

  • 使用PopUpControl和相应的其他元素填充子类NSTableViewCell

  • 使用(+)和(-)的按钮填充列“2”,并对该列
    NSTableViewCell
    进行子类化,以访问控件的iOutletsiActions

  • 这是我的出发点,我将很快用我正在做的一个示例项目尝试上传编辑。感谢您的帮助!

    寻求您的想法和意见以及在这方面的任何帮助。

    不要使用2列表格视图-而是使用基于1列视图的表格视图,并且在视图中使用约束和/或手动布局代码来放置按钮


    此外,容器应为包含2个表视图的拆分视图,拆分由代码管理。

    不要使用2列表视图-而是使用基于1列视图的视图,在视图中使用约束和/或手动布局代码来放置按钮


    此外,容器应该是一个包含2个表视图的拆分视图,拆分由代码管理。

    我在这里根本不使用NSTableView。NSTableView是一个功能强大的类。它所做的很多事情——管理选择、突出显示所选单元格、滚动、循环使用屏幕上滚动的视图——在这种情况下都没有用,有些实际上会妨碍您。您使用的唯一真正的“表格性”是布局,您可以通过多种方式轻松获得表格布局

    不过,Maxthon Chan是对的,他认为您需要一个相当复杂的视图-控制器对来处理表的每一行。这对类抽象出搜索查询的一个子句,并向父控制器提供一个简单的接口,父控制器是一个将整个查询组装起来准备运行的控制器。对于每一行,您都需要

     - (MyQueryClause*) getQuery;
    
    当父控制器跟踪所有活动子句并处理添加/删除按钮时:

     - (IBAction) addClause: (id) sender;
     - (IBAction) removeClause: (id) sender;
    

    我在这里根本不会使用NSTableView。NSTableView是一个功能强大的类。它所做的很多事情——管理选择、突出显示所选单元格、滚动、循环使用屏幕上滚动的视图——在这种情况下都没有用,有些实际上会妨碍您。您使用的唯一真正的“表格性”是布局,您可以通过多种方式轻松获得表格布局

    不过,Maxthon Chan是对的,他认为您需要一个相当复杂的视图-控制器对来处理表的每一行。这对类抽象出搜索查询的一个子句,并向父控制器提供一个简单的接口,父控制器是一个将整个查询组装起来准备运行的控制器。对于每一行,您都需要

     - (MyQueryClause*) getQuery;
    
    当父控制器跟踪所有活动子句并处理添加/删除按钮时:

     - (IBAction) addClause: (id) sender;
     - (IBAction) removeClause: (id) sender;
    

    与其重新发明轮子,不如使用它


    这是一个自OS X 10.5以来内置在Cocoa中的控件,旨在实现这一点。

    与其重新发明轮子,不如使用它


    这是一个自OS X 10.5以来内置于Cocoa中的控件,旨在实现此目的。

    只是想发布+1;)是一些应该有帮助的源代码。我试图检查源代码,但我得到了以下错误(代码符号错误:身份“Mac Developer”与您的密钥链中的任何有效、未过期的证书/私钥对都不匹配),有没有办法解决此问题?我找到了答案,你点击项目并关闭“代码签名”选项进行编译。太棒了,NSPredicateEditor正是我想要的!我甚至不知道那门课。只是想发布+1;)是一些应该有帮助的源代码。我试图检查源代码,但我得到了以下错误(代码符号错误:身份“Mac Developer”与您的密钥链中的任何有效、未过期的证书/私钥对都不匹配),有没有办法解决此问题?我找到了答案,你点击项目并关闭“代码签名”选项进行编译。太棒了,NSPredicateEditor正是我想要的!我甚至不知道那门课。