| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERTEXTINPUTPLUGIN_H_ |
| #define SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERTEXTINPUTPLUGIN_H_ |
| |
| #import <UIKit/UIKit.h> |
| |
| #include "flutter/shell/platform/darwin/common/framework/Headers/FlutterChannels.h" |
| #include "flutter/shell/platform/darwin/ios/framework/Source/FlutterTextInputDelegate.h" |
| |
| @interface FlutterTextInputPlugin : NSObject |
| |
| @property(nonatomic, assign) id<FlutterTextInputDelegate> textInputDelegate; |
| - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result; |
| |
| /** |
| * The `UITextInput` implementation used to control text entry. |
| * |
| * This is used by `AccessibilityBridge` to forward interactions with iOS' |
| * accessibility system. |
| */ |
| - (UIView<UITextInput>*)textInputView; |
| |
| @end |
| |
| /** An indexed position in the buffer of a Flutter text editing widget. */ |
| @interface FlutterTextPosition : UITextPosition |
| |
| @property(nonatomic, readonly) NSUInteger index; |
| |
| + (instancetype)positionWithIndex:(NSUInteger)index; |
| - (instancetype)initWithIndex:(NSUInteger)index; |
| |
| @end |
| |
| /** A range of text in the buffer of a Flutter text editing widget. */ |
| #if FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_DEBUG |
| FLUTTER_EXPORT |
| #endif |
| @interface FlutterTextRange : UITextRange <NSCopying> |
| |
| @property(nonatomic, readonly) NSRange range; |
| |
| + (instancetype)rangeWithNSRange:(NSRange)range; |
| |
| @end |
| |
| #if FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_DEBUG |
| FLUTTER_EXPORT |
| #endif |
| @interface FlutterTextInputView : UIView <UITextInput> |
| |
| // UITextInput |
| @property(nonatomic, readonly) NSMutableString* text; |
| @property(nonatomic, readonly) NSMutableString* markedText; |
| @property(readwrite, copy) UITextRange* selectedTextRange; |
| @property(nonatomic, strong) UITextRange* markedTextRange; |
| @property(nonatomic, copy) NSDictionary* markedTextStyle; |
| @property(nonatomic, assign) id<UITextInputDelegate> inputDelegate; |
| |
| // UITextInputTraits |
| @property(nonatomic) UITextAutocapitalizationType autocapitalizationType; |
| @property(nonatomic) UITextAutocorrectionType autocorrectionType; |
| @property(nonatomic) UITextSpellCheckingType spellCheckingType; |
| @property(nonatomic) BOOL enablesReturnKeyAutomatically; |
| @property(nonatomic) UIKeyboardAppearance keyboardAppearance; |
| @property(nonatomic) UIKeyboardType keyboardType; |
| @property(nonatomic) UIReturnKeyType returnKeyType; |
| @property(nonatomic, getter=isSecureTextEntry) BOOL secureTextEntry; |
| @property(nonatomic) UITextSmartQuotesType smartQuotesType API_AVAILABLE(ios(11.0)); |
| @property(nonatomic) UITextSmartDashesType smartDashesType API_AVAILABLE(ios(11.0)); |
| |
| @property(nonatomic, assign) id<FlutterTextInputDelegate> textInputDelegate; |
| |
| @end |
| #endif // SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERTEXTINPUTPLUGIN_H_ |