implement static method
NSTextInput
implement({
- required void insertText_(
- ObjCObjectBase object
- required void doCommandBySelector_(
- Pointer<
ObjCSelector> aSelector
- Pointer<
- required void setMarkedText_selectedRange_(
- ObjCObjectBase,
- NSRange
- required void unmarkText(),
- required bool hasMarkedText(),
- required int conversationIdentifier(),
- required NSAttributedString attributedSubstringFromRange_(
- NSRange range
- required NSRange markedRange(),
- required NSRange selectedRange(),
- required NSRect firstRectForCharacterRange_(),
- required DartNSInteger characterIndexForPoint_(
- NSPoint point
- required NSArray validAttributesForMarkedText(),
- bool $keepIsolateAlive = true,
Builds an object that implements the NSTextInput 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 NSTextInput implement({
required void Function(objc.ObjCObjectBase) insertText_,
required void Function(ffi.Pointer<objc.ObjCSelector>) doCommandBySelector_,
required void Function(objc.ObjCObjectBase, NSRange)
setMarkedText_selectedRange_,
required void Function() unmarkText,
required bool Function() hasMarkedText,
required DartNSInteger Function() conversationIdentifier,
required NSAttributedString Function(NSRange) attributedSubstringFromRange_,
required NSRange Function() markedRange,
required NSRange Function() selectedRange,
required NSRect Function(NSRange) firstRectForCharacterRange_,
required DartNSUInteger Function(NSPoint) characterIndexForPoint_,
required objc.NSArray Function() validAttributesForMarkedText,
bool $keepIsolateAlive = true,
}) {
final builder = objc.ObjCProtocolBuilder(debugName: 'NSTextInput');
NSTextInput.insertText_.implement(builder, insertText_);
NSTextInput.doCommandBySelector_.implement(builder, doCommandBySelector_);
NSTextInput.setMarkedText_selectedRange_.implement(
builder,
setMarkedText_selectedRange_,
);
NSTextInput.unmarkText.implement(builder, unmarkText);
NSTextInput.hasMarkedText.implement(builder, hasMarkedText);
NSTextInput.conversationIdentifier.implement(
builder,
conversationIdentifier,
);
NSTextInput.attributedSubstringFromRange_.implement(
builder,
attributedSubstringFromRange_,
);
NSTextInput.markedRange.implement(builder, markedRange);
NSTextInput.selectedRange.implement(builder, selectedRange);
NSTextInput.firstRectForCharacterRange_.implement(
builder,
firstRectForCharacterRange_,
);
NSTextInput.characterIndexForPoint_.implement(
builder,
characterIndexForPoint_,
);
NSTextInput.validAttributesForMarkedText.implement(
builder,
validAttributesForMarkedText,
);
builder.addProtocol($protocol);
return NSTextInput.castFrom(
builder.build(keepIsolateAlive: $keepIsolateAlive),
);
}