implement static method

NSSharingServicePickerDelegate implement({
  1. NSArray sharingServicePicker_sharingServicesForItems_proposedSharingServices_(
    1. NSSharingServicePicker,
    2. NSArray,
    3. NSArray
    )?,
  2. NSSharingServiceDelegate? sharingServicePicker_delegateForSharingService_(
    1. NSSharingServicePicker,
    2. NSSharingService
    )?,
  3. void sharingServicePicker_didChooseSharingService_(
    1. NSSharingServicePicker,
    2. NSSharingService?
    )?,
  4. NSArray? sharingServicePickerCollaborationModeRestrictions_(
    1. NSSharingServicePicker
    )?,
  5. bool $keepIsolateAlive = true,
})

Builds an object that implements the NSSharingServicePickerDelegate protocol. To implement multiple protocols, use addToBuilder or objc.ObjCProtocolBuilder directly.

If $keepIsolateAlive is true, this protocol will keep this isolate alive until it is garbage collected by both Dart and ObjC.

Implementation

static NSSharingServicePickerDelegate implement({
  objc.NSArray Function(NSSharingServicePicker, objc.NSArray, objc.NSArray)?
  sharingServicePicker_sharingServicesForItems_proposedSharingServices_,
  NSSharingServiceDelegate? Function(
    NSSharingServicePicker,
    NSSharingService,
  )?
  sharingServicePicker_delegateForSharingService_,
  void Function(NSSharingServicePicker, NSSharingService?)?
  sharingServicePicker_didChooseSharingService_,
  objc.NSArray? Function(NSSharingServicePicker)?
  sharingServicePickerCollaborationModeRestrictions_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(
    debugName: 'NSSharingServicePickerDelegate',
  );
  NSSharingServicePickerDelegate
      .sharingServicePicker_sharingServicesForItems_proposedSharingServices_
      .implement(
        builder,
        sharingServicePicker_sharingServicesForItems_proposedSharingServices_,
      );
  NSSharingServicePickerDelegate
      .sharingServicePicker_delegateForSharingService_
      .implement(builder, sharingServicePicker_delegateForSharingService_);
  NSSharingServicePickerDelegate.sharingServicePicker_didChooseSharingService_
      .implement(builder, sharingServicePicker_didChooseSharingService_);
  NSSharingServicePickerDelegate
      .sharingServicePickerCollaborationModeRestrictions_
      .implement(builder, sharingServicePickerCollaborationModeRestrictions_);
  builder.addProtocol($protocol);
  return NSSharingServicePickerDelegate.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}