https://github.com/caoimhebyrne/jnapple
🍏 A collection of partial JNA bindings for various macOS frameworks. (e.g. Foundation, AppKit, etc.)
https://github.com/caoimhebyrne/jnapple
bindings java jna macos
Last synced: 5 months ago
JSON representation
🍏 A collection of partial JNA bindings for various macOS frameworks. (e.g. Foundation, AppKit, etc.)
- Host: GitHub
- URL: https://github.com/caoimhebyrne/jnapple
- Owner: caoimhebyrne
- License: mit
- Created: 2021-12-14T22:56:51.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-08-22T19:15:42.000Z (about 1 year ago)
- Last Synced: 2025-03-26T00:35:59.341Z (8 months ago)
- Topics: bindings, java, jna, macos
- Language: Java
- Homepage:
- Size: 206 KB
- Stars: 6
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# JNApple
🍏 A collection of partial JNA bindings for various macOS frameworks. (e.g. Foundation, AppKit, etc.)
## Usage
These are just some common examples, for a wider range, check out
our [tests](https://github.com/cbyrneee/JNApple/tree/main/src/test/java/dev/cbyrne/jnapple/test).
**Creating an NSString**
```java
var str = new NSString("Hello, World!");
// You can access this as a Java String if you wish too! (NSString#getJvmString)
```
**Creating an NSURL**
```java
var str = new NSURL("https://cbyrne.dev");
// You can access this as a Java URL if you wish too! (NSURL#getJvmURL)
```
**Copying text to the clipboard**
```java
var pasteboard = NSPasteboard.generalPasteboard();
pasteboard.clearContents();
pasteboard.setString("Hello, World!", NSPasteboard.TypeString);
```
**Opening a file picker (NSOpenPanel)**
```java
var panel = NSOpenPanel.openPanel();
panel.setCanChooseFiles(true);
var result = panel.runModal();
if(result == NSAlert.NSModalResponse.OK) {
NSURL url = panel.getURLs().objectAtIndex(0); // Can also use firstObject()
System.out.println("First URL: " + url);
}
```