2 releases

0.2.2 May 21, 2024
0.2.0 Apr 17, 2024

#140 in macOS and iOS APIs

Download history 225/week @ 2024-04-16 3579/week @ 2024-04-23 27780/week @ 2024-04-30 27406/week @ 2024-05-07 33847/week @ 2024-05-14 38743/week @ 2024-05-21 48414/week @ 2024-05-28 42946/week @ 2024-06-04 31389/week @ 2024-06-11

165,586 downloads per month
Used in 552 crates (36 directly)

MIT license

128K SLoC


Latest version License Documentation CI

Rust bindings to Apple's framework AppKit.

This README is kept intentionally small to consolidate the documentation, see the Rust docs for more details on this crate.

This crate is part of the objc2 project, see that for related crates.


Bindings to the AppKit framework

See Apple's docs and the general docs on framework crates for more information.

Note that a lot of functionality in AppKit requires that the application has initialized properly, which is only done after the application delegate has received applicationDidFinishLaunching.

You should aspire to do all your UI initialization work in there!


Be careful when creating NSWindow if it's not inside a window controller; in those cases you're required to call window.releasedWhenClosed(false) to get correct memory management, which is also why the creation methods for NSWindow are unsafe.


Implementing NSApplicationDelegate for a custom class.

An example showing basic and a bit more advanced usage of NSPasteboard.