Revert "[iOS] Send connectionClosed message when resignFirstResponder to ensure framework focus state is correct. (#40703)" (flutter/engine#40777)

Revert "[iOS] Send connectionClosed message when resignFirstResponder to ensure framework focus state is correct."
This commit is contained in:
luckysmg
2023-03-30 16:11:57 +08:00
committed by GitHub
parent d48b1b596f
commit de2ccc20e3
4 changed files with 4 additions and 30 deletions

View File

@@ -1095,14 +1095,7 @@ static void SetEntryPoint(flutter::Settings* settings, NSString* entrypoint, NSS
arguments:@[ @(client) ]];
}
- (void)flutterTextInputView:(FlutterTextInputView*)textInputView
didResignFirstResponderWithTextInputClient:(int)client {
// When flutter text input view resign first responder, send a message to
// framework to ensure the focus state is correct. This is useful when close
// keyboard from platform side.
[_textInputChannel.get() invokeMethod:@"TextInputClient.onConnectionClosed"
arguments:@[ @(client) ]];
- (void)flutterTextInputViewDidResignFirstResponder:(FlutterTextInputView*)textInputView {
// Platform view's first responder detection logic:
//
// All text input widgets (e.g. EditableText) are backed by a dummy UITextInput view

View File

@@ -13,14 +13,9 @@
#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterBinaryMessengerRelay.h"
#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterDartProject_Internal.h"
#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterEngine_Test.h"
#import "flutter/shell/platform/darwin/ios/framework/Source/FlutterTextInputPlugin.h"
FLUTTER_ASSERT_ARC
@interface FlutterEngine () <FlutterTextInputDelegate>
@end
@interface FlutterEngineTest : XCTestCase
@end
@@ -318,17 +313,4 @@ FLUTTER_ASSERT_ARC
}
}
- (void)testFlutterTextInputViewDidResignFirstResponderWillCallTextInputClientConnectionClosed {
id mockBinaryMessenger = OCMClassMock([FlutterBinaryMessengerRelay class]);
FlutterEngine* engine = [[FlutterEngine alloc] init];
[engine setBinaryMessenger:mockBinaryMessenger];
[engine runWithEntrypoint:FlutterDefaultDartEntrypoint initialRoute:@"test"];
[engine flutterTextInputView:nil didResignFirstResponderWithTextInputClient:1];
FlutterMethodCall* methodCall =
[FlutterMethodCall methodCallWithMethodName:@"TextInputClient.onConnectionClosed"
arguments:@[ @(1) ]];
NSData* encodedMethodCall = [[FlutterJSONMethodCodec sharedInstance] encodeMethodCall:methodCall];
OCMVerify([mockBinaryMessenger sendOnChannel:@"flutter/textinput" message:encodedMethodCall]);
}
@end

View File

@@ -59,8 +59,8 @@ typedef NS_ENUM(NSInteger, FlutterFloatingCursorDragState) {
insertTextPlaceholderWithSize:(CGSize)size
withClient:(int)client;
- (void)flutterTextInputView:(FlutterTextInputView*)textInputView removeTextPlaceholder:(int)client;
- (void)flutterTextInputView:(FlutterTextInputView*)textInputView
didResignFirstResponderWithTextInputClient:(int)client;
- (void)flutterTextInputViewDidResignFirstResponder:(FlutterTextInputView*)textInputView;
@end
#endif // SHELL_PLATFORM_IOS_FRAMEWORK_SOURCE_FLUTTERTEXTINPUTDELEGATE_H_

View File

@@ -1043,8 +1043,7 @@ static BOOL IsSelectionRectCloserToPoint(CGPoint point,
- (BOOL)resignFirstResponder {
BOOL success = [super resignFirstResponder];
if (success) {
[self.textInputDelegate flutterTextInputView:self
didResignFirstResponderWithTextInputClient:_textInputClient];
[self.textInputDelegate flutterTextInputViewDidResignFirstResponder:self];
}
return success;
}