AppKit框架介绍

380 阅读4分钟

框架

AppKit

为你的macOS应用构建和管理一个图形化的、事件驱动的用户界面。

概览

AppKit包含为macOS应用程序构建用户界面所需的对象。除了绘制窗口、按钮、面板和文本框之外,它还处理所有的事件管理,以及APP、人和macOS之间的交互。

AppKit-0.png

除了绘制和管理交互之外,AppKit还可以有效地处理打印、动画以及创建包含大量数据的文档。该框架还包含对本地化和可访问性的内置支持,以确保您的应用程序能够被更多的人使用。

AppKit可以和SwiftUI混合开发,所以你可以在SwiftUI中实现部分AppKit应用,或者在两个框架之间混合界面元素。例如,你可以把AppKit的views和view controller放在SwiftUI views中,反之亦然。

备注: 有关将iPad应用程序移植到Mac的信息,请参阅Mac Catalyst。使用SwiftUI,可以创建运行在所有Apple平台的 iOS app,或者使用UIKit,创建一个仅在iOS平台上运行的app。

内容

要点

Apple很安全,注重用户隐私
如何将macOS Apps移植到Apple芯片

App结构

App与环境(App and Environment)

了解用于与系统交互的对象。

文档、数据、粘贴板(Documents, Data, and Pasteboard)

组织你的程序的数据和偏好,并且在粘贴板或者iCloud分享它们。

Cocoa绑定(Cocoa Bindings)

通过Cocoa Bindings(Cocoa 绑定),自动同步你的程序的用户界面和数据模型。

资源管理(Resource Management)

管理包含你的程序的用户界面的storyboard和nib,学习加载保存在资源文件夹的数据。

App扩展(App Extensions)

将程序的基础功能扩展到系统的其他部分。


用户界面

用户界面提供你的程序正在执行的事件的视觉、听觉、触觉反馈。

视图与控件(Views and Controls)

在屏幕上展示你的内容,处理用户输入和事件。

视图管理(View Management)

管理你的用户界面,包括在窗口中的视图尺寸和位置。

视图约束(View Layout)

使用堆栈视图或自动布局约束(Auto Layout)来定位和调整视图的大小。

自定义外观(Appearance Customization)

在你的程序中添加暗黑模式,并使用外观代理修改你的UI。

动画(Animation)

给你的视图和其他内容添加动画,使程序更加引人入胜。

窗口、面板和屏幕(Windows, Panels, and Screens)

组织你的视图层级结构,并促进它们在屏幕上的显示。

声音、语言和触觉反馈(Sound, Speech, and Haptics)

将播放声音、触觉反馈、语音合成,集成到你的界面中。

在你的mac APP中支持接力相机(Supporting Continuity Camera in Your Mac App)

使用接力相机将用户 iPhone、iPad 或 iPod touch 上扫描的文档和图片集成到您的 Mac 应用中。


用户交互

鼠标、键盘和触摸板

处理鼠标、键盘、触摸板输入的相关事件。

菜单、光标和Dock

实现菜单和光标以方便与您的应用进行交互,并使用应用的 Dock 图标来传达更新信息。

手势

将程序的事件处理逻辑封装到手势识别器中,这样您就可以在整个程序中复用该代码。

Touch Bar

在Touch Bar中显示交互内容和控件。

拖放

支持使用拖放直接操作你的程序的内容。

AppKit无障碍功能

所有使用macOS的用户都能无障碍的访问你的程序。


图形、绘图、颜色、打印

图片与PDF

创建管理bitmap、PDF或者其他格式的图片。

绘图

在屏幕上绘制图形、图片、或者其他内容。

颜色

使用内置或自定义格式展示颜色,并给用户选择使用。

打印

显示系统打印面板,管理打印流程。


文本

文本显示

显示文本并检查拼写。

TextKit

在你程序的视图中,管理文本存储并执行基于文本的自定义约束。

字体

管理显示文本的字体。

写作工具(Writing Tools)

在你的程序的文本视图中添加写作工具支持。


弃用

避免在您的应用中使用已弃用的类和协议。

弃用符号

检查弃用的符号,并找到替代的符号。


引用

枚举

用于多个类的枚举。

常量

用于多个类的常量。

数据类型

用于多个类的数据类型。

用于多个类的宏。


协议

protocol NSTextSuggestionsDelegate
一种供文本字段的建议代理遵循的协议,以便根据用户输入提供文本建议。
protocol NSViewContentSelectionInfo


结构体

struct NSSuggestionItem
出现在建议菜单中的项。 struct NSSuggestionItemResponse
描述搜索中一系列建议项目的结果。
struct NSSuggestionItemSection
描述建议菜单中某一部分的建议项目。


变量

  • var NSPasteboardCommunicationError: Int
  • var NSPasteboardContentsNotAvailableError: Int
  • var NSPasteboardErrorMaximum: Int
  • var NSPasteboardErrorMinimum: Int
  • var NSPasteboardInvalidArgumentError: Int
  • var NSPasteboardMiscellaneousError: Int

macro Preview(String?, traits: PreviewTrait<Preview.ViewTraits>..., body: () -> NSViewController)
预览一个NSViewController.

macro Preview(String?, traits: PreviewTrait<Preview.ViewTraits>..., body: () -> NSView)
预览一个NSView