Sometimes you will find yourself working on an app where the default implementations don't work for you. For instance, any application's drop delegate can propose a move action instead of a copy action. However, it's possible that you don't want to support this. You can restrict the allowed proposals by implementing dragInteraction(_:sessionAllowsMoveOperation:). If you only want to allow copy operations, you can return false from this method. Another restriction you can enable through a delegate method is dragInteraction(_:sessionIsRestrictedToDraggingApplication:). If you return true from this method, users won't be able to drag content from your app to another app.
Other methods on both the drag and the drop delegates are related to monitoring the state of the drag or drop session. Imagine that your app supports...