implementAsBlocking static method

NSUserInterfaceItemSearching implementAsBlocking({
  1. required void searchForItemsWithSearchString_resultLimit_matchedItemHandler_(
    1. NSString,
    2. DartNSInteger,
    3. ObjCBlock<Void Function(NSArray)>
    ),
  2. required NSArray localizedTitlesForItem_(
    1. ObjCObjectBase originalChild
    ),
  3. void performActionForItem_(
    1. ObjCObjectBase
    )?,
  4. void showAllHelpTopicsForSearchString_(
    1. DartCAMediaTimingFillMode
    )?,
  5. bool $keepIsolateAlive = true,
})

Builds an object that implements the NSUserInterfaceItemSearching protocol. To implement multiple protocols, use addToBuilder or objc.ObjCProtocolBuilder directly. All methods that can be implemented as blocking listeners will be.

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

Implementation

static NSUserInterfaceItemSearching implementAsBlocking({
  required void Function(
    objc.NSString,
    DartNSInteger,
    objc.ObjCBlock<ffi.Void Function(objc.NSArray)>,
  )
  searchForItemsWithSearchString_resultLimit_matchedItemHandler_,
  required objc.NSArray Function(objc.ObjCObjectBase) localizedTitlesForItem_,
  void Function(objc.ObjCObjectBase)? performActionForItem_,
  void Function(DartCAMediaTimingFillMode)? showAllHelpTopicsForSearchString_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(
    debugName: 'NSUserInterfaceItemSearching',
  );
  NSUserInterfaceItemSearching
      .searchForItemsWithSearchString_resultLimit_matchedItemHandler_
      .implementAsBlocking(
        builder,
        searchForItemsWithSearchString_resultLimit_matchedItemHandler_,
      );
  NSUserInterfaceItemSearching.localizedTitlesForItem_.implement(
    builder,
    localizedTitlesForItem_,
  );
  NSUserInterfaceItemSearching.performActionForItem_.implementAsBlocking(
    builder,
    performActionForItem_,
  );
  NSUserInterfaceItemSearching.showAllHelpTopicsForSearchString_
      .implementAsBlocking(builder, showAllHelpTopicsForSearchString_);
  builder.addProtocol($protocol);
  return NSUserInterfaceItemSearching.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}