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.
- Host: GitHub
- URL: https://github.com/lukakerr/swift-nsusernotificationprivate
- Owner: lukakerr
- Created: 2017-07-02T11:17:41.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-11-17T06:15:35.000Z (over 8 years ago)
- Last Synced: 2025-03-21T18:14:06.293Z (about 1 year ago)
- Topics: foundation, nsusernotification, objective-c, osx, private-api, swift
- Language: Objective-C
- Homepage:
- Size: 39.1 KB
- Stars: 9
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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`
### 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`