implement static method

NSAccessibilityLayoutArea implement({
  1. required DartCADynamicRange accessibilityLabel(),
  2. required NSArray? accessibilityChildren(),
  3. required NSArray? accessibilitySelectedChildren(),
  4. required ObjCObjectBase accessibilityFocusedUIElement(),
  5. required CGRect accessibilityFrame(),
  6. required ObjCObjectBase? accessibilityParent(),
  7. bool isAccessibilityFocused()?,
  8. NSString accessibilityIdentifier()?,
  9. bool $keepIsolateAlive = true,
})
override

Builds an object that implements the NSAccessibilityLayoutArea 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 NSAccessibilityLayoutArea implement({
  required objc.NSString Function() accessibilityLabel,
  required objc.NSArray? Function() accessibilityChildren,
  required objc.NSArray? Function() accessibilitySelectedChildren,
  required Dartinstancetype Function() accessibilityFocusedUIElement,
  required NSRect Function() accessibilityFrame,
  required objc.ObjCObjectBase? Function() accessibilityParent,
  bool Function()? isAccessibilityFocused,
  objc.NSString Function()? accessibilityIdentifier,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(
    debugName: 'NSAccessibilityLayoutArea',
  );
  NSAccessibilityLayoutArea.accessibilityLabel.implement(
    builder,
    accessibilityLabel,
  );
  NSAccessibilityLayoutArea.accessibilityChildren.implement(
    builder,
    accessibilityChildren,
  );
  NSAccessibilityLayoutArea.accessibilitySelectedChildren.implement(
    builder,
    accessibilitySelectedChildren,
  );
  NSAccessibilityLayoutArea.accessibilityFocusedUIElement.implement(
    builder,
    accessibilityFocusedUIElement,
  );
  NSAccessibilityLayoutArea.accessibilityFrame.implement(
    builder,
    accessibilityFrame,
  );
  NSAccessibilityLayoutArea.accessibilityParent.implement(
    builder,
    accessibilityParent,
  );
  NSAccessibilityLayoutArea.isAccessibilityFocused.implement(
    builder,
    isAccessibilityFocused,
  );
  NSAccessibilityLayoutArea.accessibilityIdentifier.implement(
    builder,
    accessibilityIdentifier,
  );
  builder.addProtocol($protocol);
  return NSAccessibilityLayoutArea.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}