implementAsBlocking static method
NSEditor
implementAsBlocking({})
Builds an object that implements the NSEditor 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 NSEditor implementAsBlocking({
required void Function() discardEditing,
required bool Function() commitEditing,
required void Function(
objc.ObjCObjectBase?,
ffi.Pointer<objc.ObjCSelector>,
ffi.Pointer<ffi.Void>,
)
commitEditingWithDelegate_didCommitSelector_contextInfo_,
required bool Function(ffi.Pointer<ffi.Pointer<objc.ObjCObject>>)
commitEditingAndReturnError_,
bool $keepIsolateAlive = true,
}) {
final builder = objc.ObjCProtocolBuilder(debugName: 'NSEditor');
NSEditor.discardEditing.implementAsBlocking(builder, discardEditing);
NSEditor.commitEditing.implement(builder, commitEditing);
NSEditor.commitEditingWithDelegate_didCommitSelector_contextInfo_
.implementAsBlocking(
builder,
commitEditingWithDelegate_didCommitSelector_contextInfo_,
);
NSEditor.commitEditingAndReturnError_.implement(
builder,
commitEditingAndReturnError_,
);
builder.addProtocol($protocol);
return NSEditor.castFrom(
builder.build(keepIsolateAlive: $keepIsolateAlive),
);
}