implementAsBlocking static method
NSCollectionViewElement
implementAsBlocking({
- void prepareForReuse()?,
- void applyLayoutAttributes_()?,
- void willTransitionFromLayout_toLayout_()?,
- void didTransitionFromLayout_toLayout_()?,
- NSCollectionViewLayoutAttributes preferredLayoutAttributesFittingAttributes_()?,
- required NSString? identifier(),
- required void setIdentifier_(),
- bool $keepIsolateAlive = true,
Builds an object that implements the NSCollectionViewElement 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 NSCollectionViewElement implementAsBlocking({
void Function()? prepareForReuse,
void Function(NSCollectionViewLayoutAttributes)? applyLayoutAttributes_,
void Function(NSCollectionViewLayout, NSCollectionViewLayout)?
willTransitionFromLayout_toLayout_,
void Function(NSCollectionViewLayout, NSCollectionViewLayout)?
didTransitionFromLayout_toLayout_,
NSCollectionViewLayoutAttributes Function(NSCollectionViewLayoutAttributes)?
preferredLayoutAttributesFittingAttributes_,
required DartNSUserInterfaceItemIdentifier? Function() identifier,
required void Function(DartNSUserInterfaceItemIdentifier?) setIdentifier_,
bool $keepIsolateAlive = true,
}) {
final builder = objc.ObjCProtocolBuilder(
debugName: 'NSCollectionViewElement',
);
NSCollectionViewElement.prepareForReuse.implementAsBlocking(
builder,
prepareForReuse,
);
NSCollectionViewElement.applyLayoutAttributes_.implementAsBlocking(
builder,
applyLayoutAttributes_,
);
NSCollectionViewElement.willTransitionFromLayout_toLayout_
.implementAsBlocking(builder, willTransitionFromLayout_toLayout_);
NSCollectionViewElement.didTransitionFromLayout_toLayout_
.implementAsBlocking(builder, didTransitionFromLayout_toLayout_);
NSCollectionViewElement.preferredLayoutAttributesFittingAttributes_
.implement(builder, preferredLayoutAttributesFittingAttributes_);
NSCollectionViewElement.identifier.implement(builder, identifier);
NSCollectionViewElement.setIdentifier_.implementAsBlocking(
builder,
setIdentifier_,
);
builder.addProtocol($protocol);
return NSCollectionViewElement.castFrom(
builder.build(keepIsolateAlive: $keepIsolateAlive),
);
}