Display things in an app-modal floating window that users can fuzzy-filter by typing ahead.
This module strives for taking care of its components's memory wherever possible. This means you do not need to keep a reference to the window or its controller around. Both will be freed when the action has been completed.
This is useful if you want to filter e.g. a limited collection of files, like "Recent Files", or to display a list of known macros.
import FloatingFilter
// ...
let items = [
Item(identifier: UUID(), title: "Create new widget"),
Item(identifier: 202002200930, title: "Open last document"),
Item(identifier: "custom-ID_123", title: "Show downloaded data")
]
FloatingFilterModule.showFilterWindow(items: items) { selectedItems in
print("Selected:", selectedItems.map { $0.title })
}
Add this to your Cartfile
:
github "cleancocoa/FloatingFilter"
Then run
$ carthage update
... and include FloatingFilter.framework
from Carthage/Build/Mac
in your app.
Copyright (c) 2020 Christian Tietze. Distributed under the MIT License.
Fuzzy matching is Copyright (c) 2015 Yichi Zhang https://github.com/yichizhang/SwiftyStringScore