Sheeeeeeeeet is a Swift library for creating menus, custom action sheets, context menus etc.
ActionSheetItemCell
removes an old fix for separator lines on iOS 10.This version fixes a bug that caused sheets to get initial empty frames.
This version makes it possible to build Sheeeeeeeeet from Xcode 13.
It does so by removing UIApplication.shared
dependencies and instead use the view controller.
These changes required the removal of some deprecated Menu
logic.
ActionSheet
init presenter is now optional instead of the default one.Menu
logic had to be removed.ActionSheet
presenter
is now optional and is resolved when presenting instead of when creating the sheet.This version temporarily downgrades the Quick dependency to 3.0 to make Sheeeeeeeeet work with packages that haven't upgraded.
This version updates external dependencies.
This version fixes a bug that caused regular items to not apply right to left text alignment if the device locale requested it.
ActionSheetItemCell
now uses .natural
instead of .left
by default..left
to the base cell or section titles.This version prepares the library for Xcode 11.4 and Swift 5.2 and upgrades external dependencies.
Thanks to @BinaryDennis, this version adds support for auto dismissing context menus and action sheets when an app is sent to the background.
ActionSheet
has a new ActionSheet.Configuration
that replaces Menu.Configuration
. You specify it when you create an action sheet.ActionSheetPresenterBase
base class that you can use when creating custom presenters.ActionSheetStandardPresenter
and ActionSheetPopoverPresenter
inherits ActionSheetPresenterBase
.ActionSheetPopoverPresenter
has moved its popover delegate logic to another class and no longer inherits NSObject
.DestructiveItem
type that makes it possible to have destructive options in a menu, not just destructive buttons.DestructiveItem
is automatically styled by the ActionSheetAppearance
base class.DestructiveItem
is automatically annotated when it's converted to a context menu item.Menu.Configuration
is deprecated and have no affect anymore.Menu.presentAsActionSheet
is deprecated. Use toActionSheet
instead, then present it.ActionSheet.HeaderViewConfiguration
is renamed to ActionSheet.HeaderConfiguration
ActionSheet.headerViewConfiguration
is renamed to ActionSheet.headerConfiguration
ActionSheetDangerItemCell
is renamed to ActionSheetDestructiveItemCell
I tried but couldn't avoiding breaking changes, since some protocols had to change. Hopefully, you can easily work around these changes:
ActionSheetPresenter
no longer has an isDismissable
property. Instead, use a .nonDismissable
configuration when creating an action sheet.ActionSheetPresenter
convenience presenters are now part of ActionSheetPresenterBase
no longer open
for extension.This version adjusts the secondary action signature to also provide the affected item. It's a breaking change, but a small one, so deal with it I guess ¯\_(ツ)_/¯
This version also makes the ActionSheetItemHandler
protocol implementations open
so they're possible to override.