An open API service indexing awesome lists of open source software.

https://github.com/lukakerr/swift-nsusernotificationprivate

MacOS NSUserNotification Private API in Swift 4. Simple demonstration of undocumented notification features.
https://github.com/lukakerr/swift-nsusernotificationprivate

foundation nsusernotification objective-c osx private-api swift

Last synced: about 1 year ago
JSON representation

MacOS NSUserNotification Private API in Swift 4. Simple demonstration of undocumented notification features.

Awesome Lists containing this project

README

          

# NSUserNotificationPrivate in Swift 4

Simply open `NSUserNotificationPrivate.xcodeproj` and run.

Have a look around `AppDelegate.swift` to see what properties are being used on the NSUserNotification class

In the `NSUserNotificationPrivate-Bridging-Header.h` (Foundation.framework class-dump header file) file, you will find other properties that can be used on the NSUserNotification class:

```objective-c
@property(copy) NSImage *_identityImage;
@property BOOL _clearable;
@property unsigned long long _badgeCount;
```

To set `_identityImage`, or any other private property, call the instance method `setValue`:

```swift
notification.setValue(NSImage(named: NSImage.Name(rawValue: "img")), forKey: "_identityImage")
notification.setValue(true, forKey: "_clearable")
notification.setValue(5, forKey: "_badgeCount")
```

The following properties are used to present a notification as shown in the image below:

`_identityImage`
`_identityImageHasBorder`
`_ignoresDoNotDisturb`
`_lockscreenOnly`
`_poofsOnCancel`
`_alternateActionButtonTitles`
`_alwaysShowAlternateActionMenu`
`_clearable`


notification

### Note

In order for a notification to be able to have action buttons (buttons on the right hand side), the following key value pair must be added to `Info.plist`:

Key: `NSUserNotificationAlertStyle` Value: `alert`