macos - Cocoa OSX 自定义小部件/控件

标签 macos cocoa widget

我想知道如何在 Cocoa 中创建自定义小部件/控件。 不是完整的教程,而是一些关于开始研究内容的指导。我对自定义 View 、核心动画等感到困惑。我感到迷失。

我看到很多看起来很酷的控件,例如 Reeder App 或 Sparrow 等。例如:

Sparrow

左侧是一个可折叠菜单,其中包括动画等。我怎样才能实现类似的效果?我想过使用 WebView + HTML + JavaScript,但这似乎不是一个非常优化的解决方案。

最佳答案

控件是 View ,因此如果自定义 View 让您感到困惑,您需要在继续使用自定义控件之前弄清楚这一点。尽管您确实应该阅读整个 View Programming Guide ,名为 Creating a Custom View 的部分将帮助您开始创建自己的 View 。尝试创建一个简单的 View ,例如绘制圆圈或时间。

当您弄清楚 View 后,请继续使用自定义控件。大多数控件的工作方式大致相同。用户触摸它们,控件通过以下方式做出响应:a) 跟踪用户的输入,b) 更改其值,c) 向其目标发送操作消息,d) 通过重绘自身向用户提供一些反馈。首先,请确保您了解如何使用控件。正在阅读Control and Cell Programming Topics应该有帮助,标题为 Subclassing NSControl 的部分(显然)涵盖创建您自己的子类。

您提供的示例非常明显是 Apple 的 Mail.app。窗口左侧的 View 可能是 NSOutlineView 的实例。 ,或者它可能是一个自定义类。无论哪种方式,如果您想复制该功能,NSOutlineView 将是一个很好的起点。 NSOutlineView 是 NSTableView 的子类,而 NSTableView 又是 NSControl 的子类,而 NSControl 又是 NSView 的子类。阅读 Outline View Programming Topics获取入门帮助 - 表格和大纲非常有用,但使用起来也比按钮和文本字段等基本控件更复杂。

关于macos - Cocoa OSX 自定义小部件/控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9676122/

相关文章:

xcode - Cocoa:防止窗口离开屏幕

macos - XCode 4 中 OpenCV FileStorage 的问题

swift - 如何以编程方式呈现 WKWebView 的 WebKit 检查器?

xcode - Mac 上的蓝牙 RSSI/查询扫描 - 无需连接即可检测到 iPhone 的接近度?

SwiftUI iOS 14 WidgetKit 倒计时

c++ - QUiLoader 只创建自定义小部件的基类

multithreading - pthread_join 因 OSX 上的段错误而间歇性崩溃

bash - 如何在 MAC OSX 上限制程序内存使用的示例

cocoa - 如何打印 CorePlot 图表

java - 根据 GXT 中另一个下拉列表的选择填充下拉列表