mirror of
https://github.com/gosticks/Popover.git
synced 2025-10-16 11:55:38 +00:00
Readme
This commit is contained in:
parent
34fb2f3444
commit
a0016a047c
70
README.md
70
README.md
@ -1,6 +1,74 @@
|
||||
# Popover
|
||||
|
||||
Mac OS custom popover. Made with ❤️
|
||||
Mac OS custom popover.
|
||||

|
||||
|
||||
# Install
|
||||
|
||||
Since this is a Swift Package, the installation process is pretty stright forward.
|
||||
|
||||
### Manual way
|
||||
Update your `Package.swift` dependencies:
|
||||
|
||||
```
|
||||
dependencies: [
|
||||
.package(url: "https://github.com/iSapozhnik/Popover", from: "1.0.8")
|
||||
]
|
||||
```
|
||||
|
||||
### Via Xcode:
|
||||
1. Go to `File -> Swift Packages -> Add Package Dependency`.
|
||||
2. Put GitHub URL `https://github.com/iSapozhnik/Popover` and click `Next`
|
||||
3. Select the latest version
|
||||
4. Click `Finish`
|
||||
|
||||
# How to use
|
||||
|
||||
1. In your `AppDelegate` import Popover
|
||||
2. Create a view you want to put into a status bar.
|
||||
3. Create a content view controller which would be embedded inside Popover
|
||||
4. Optionally create menu items
|
||||
5. Create a Popover instance. Here you can use either standard configuration (you don't need to pass `windowConfiguration` parameter in this case) or you can subclass `DefaultConfiguration`, override some properties and pass a new instance as a parameter. If in ste 4 you have created menu items, pass it here as well.
|
||||
6. Call `prepare` to set everything up.
|
||||
|
||||
And here is how typical `AppDelegate` may look like:
|
||||
|
||||
```swift
|
||||
import Cocoa
|
||||
import Popover
|
||||
|
||||
class MyPopoverConfiguration: DefaultConfiguration {
|
||||
override var backgroundColor: NSColor {
|
||||
return NSColor.systemRed
|
||||
}
|
||||
|
||||
override var borderColor: NSColor? {
|
||||
return NSColor.red
|
||||
}
|
||||
}
|
||||
|
||||
@NSApplicationMain
|
||||
class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
var popover: Popover!
|
||||
|
||||
func applicationDidFinishLaunching(_ aNotification: Notification) {
|
||||
let statusItemView = StatusItemView(frame: NSRect(width: 22.0, height: 20))
|
||||
|
||||
let viewController = MainViewController()
|
||||
|
||||
let menuItems: [Popover.MenuItemType] = [
|
||||
.item(Popover.MenuItem(title: "Settings", action: viewController.showSettings)),
|
||||
.separator,
|
||||
.item(Popover.MenuItem(title: "Quit", key: "q", action: viewController.quit))
|
||||
]
|
||||
|
||||
popover = Popover(with: MyPopoverConfiguration(), menuItems: menuItems)
|
||||
popover.prepare(with: statusItemView, contentViewController: viewController)
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Heavily inspired by [CCNStatusItem](https://github.com/phranck/CCNStatusItem)
|
||||
BIN
popover.png
BIN
popover.png
Binary file not shown.
|
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 173 KiB |
Loading…
Reference in New Issue
Block a user