gpt4 book ai didi

cocoa - 现成的 Cocoa Spotlight UI 组件

转载 作者:行者123 更新时间:2023-12-03 16:14:18 24 4
gpt4 key购买 nike

我是 Mac 上的开发新手,希望实现一个类似于 Spotlight 的界面 - 主要部分似乎是一个扩展的表格/ GridView 。

alt text

我想知道苹果是否提供了一个组件来创建类似的东西,或者在其他地方是否可以使用开源组件。

当然,如果没有,我会尝试自己解决一些问题,但它总是值得检查!

感谢您提前提供的帮助。

最佳答案

新答案(2015 年 12 月)

这些天我会使用垂直堆栈 View ( NSStackView )。

您可以使用它的隐藏优先级来保证您显示的结果数量适合(它会隐藏那些它不能容纳的结果)。请注意,它不会像 TableView 重用单元格 View 那样重用 View ,因此它仅适用于您的情况下有限数量的“结果”,特别是因为添加一堆永远不会的 subview 是没有意义的出现。我什至可以直接说,您不应该将它用于要滚动的内容列表(在这种情况下,请使用表格 View )。

优先级设置可用于确保您对“足够”结果的假设不会通过让堆栈 View “牺牲”最后几个结果而导致丑陋的布局问题。

您甚至可以通过将其添加到最后并将其优先级设置为必需 (1000) 来模拟 Spotlight 的“Spotlight 首选项”条目(或“显示全部”选项),这样即使其上方的结果条目因以下原因被隐藏,它也始终保持不变:空间不足。

最近我为 10.11(及更高版本)进行的所有 UI 设计都大量使用它们。我不断寻找新的方法来简化我的布局。鉴于它们的轻量级,它们应该是您的首选解决方案,除非您需要更复杂的东西(Apple 工程师在 WWDC 视频中表示,它们打算以这种方式使用)。

2011 年旧答案

这是私有(private)的 Apple API。我不知道有任何开源项目可以立即模仿它。

如果我尝试这样做,我可能会使用一个 NSTableView,没有封闭的 ScrollView ,没有标题,两列,左列中右对齐的浅色文本,右侧的易于搜索的图像/文本单元格列,并打开垂直网格线。容器 View 将观察 TableView 的框架更改并相应地调整大小/位置。

添加:最好看看右/左对齐文本(甚至列的位置)在具有不同扫描路径的语言中是否不同。示例:阿拉伯语和希伯来语是从右到左阅读的。更好的是适应而不是说“谁在乎”(他轻率地说,同时充分了解他自己的应用程序在这类事情上存在问题:-))。您可以通过确保您的计算机上安装了此类语言,然后在它们之间切换并测试 Spotlight 来对此进行测试。更改语言不应该造成问题,因为语言切换 UI 不依赖于阅读外语。 :-)

关于cocoa - 现成的 Cocoa Spotlight UI 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4759105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com