implementAsBlocking static method

NSTabViewDelegate implementAsBlocking({
  1. bool tabView_shouldSelectTabViewItem_(
    1. NSTabView,
    2. NSTabViewItem?
    )?,
  2. void tabView_willSelectTabViewItem_(
    1. NSTabView,
    2. NSTabViewItem?
    )?,
  3. void tabView_didSelectTabViewItem_(
    1. NSTabView,
    2. NSTabViewItem?
    )?,
  4. void tabViewDidChangeNumberOfTabViewItems_(
    1. NSTabView
    )?,
  5. bool $keepIsolateAlive = true,
})

Builds an object that implements the NSTabViewDelegate 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 NSTabViewDelegate implementAsBlocking({
  bool Function(NSTabView, NSTabViewItem?)? tabView_shouldSelectTabViewItem_,
  void Function(NSTabView, NSTabViewItem?)? tabView_willSelectTabViewItem_,
  void Function(NSTabView, NSTabViewItem?)? tabView_didSelectTabViewItem_,
  void Function(NSTabView)? tabViewDidChangeNumberOfTabViewItems_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(debugName: 'NSTabViewDelegate');
  NSTabViewDelegate.tabView_shouldSelectTabViewItem_.implement(
    builder,
    tabView_shouldSelectTabViewItem_,
  );
  NSTabViewDelegate.tabView_willSelectTabViewItem_.implementAsBlocking(
    builder,
    tabView_willSelectTabViewItem_,
  );
  NSTabViewDelegate.tabView_didSelectTabViewItem_.implementAsBlocking(
    builder,
    tabView_didSelectTabViewItem_,
  );
  NSTabViewDelegate.tabViewDidChangeNumberOfTabViewItems_.implementAsBlocking(
    builder,
    tabViewDidChangeNumberOfTabViewItems_,
  );
  builder.addProtocol($protocol);
  return NSTabViewDelegate.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}