// Copyright 2017 The Chromium 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 REMOTING_IOS_CLIENT_KEYBOARD_H_ #define REMOTING_IOS_CLIENT_KEYBOARD_H_ #import #import namespace remoting { struct KeypressInfo; } // namespace remoting @protocol ClientKeyboardDelegate - (void)clientKeyboardShouldSend:(NSString*)text; - (void)clientKeyboardShouldSendKey:(const remoting::KeypressInfo&)key; - (void)clientKeyboardShouldDelete; @end // A class for capturing keyboard inputs and forwarding them to the delegate. // It should remain first responder in order to capture all key inputs. Note // that it will hide the soft keyboard and refuse to resign first responder if // you try to resign first responder when the soft keyboard is showing. @interface ClientKeyboard : UIView @property(nonatomic) UIKeyboardAppearance keyboardAppearance; @property(nonatomic) UIKeyboardType keyboardType; @property(nonatomic) UITextAutocapitalizationType autocapitalizationType; @property(nonatomic) UITextAutocorrectionType autocorrectionType; @property(nonatomic) UITextSpellCheckingType spellCheckingType; // This property comes from the UITextInput protocol. It is called when the user // taps the arrow button on the soft keyboard. This property doesn't do anything // but is just to prevent the app from crashing. It's probably Apple's bug to // show the arrow buttons in the first place. // TODO(yuweih): Implement this as arrow key injection once we get the non-text // key injection working. // TODO(yuweih): Implement the UITextInput protocol to support multi-stage input // methods. @property(readwrite, copy) UITextRange* selectedTextRange; // Set to true to show the soft keyboard. Default value is NO. @property(nonatomic) BOOL showsSoftKeyboard; // This delegate is used to call back to handler key entry. @property(weak, nonatomic) id delegate; @end #endif // REMOTING_IOS_CLIENT_KEYBOARD_H_