123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // 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 <Foundation/Foundation.h>
- #import <UIKit/UIKit.h>
- namespace remoting {
- struct KeypressInfo;
- } // namespace remoting
- @protocol ClientKeyboardDelegate<NSObject>
- - (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<UIKeyInput, UITextInputTraits>
- @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<ClientKeyboardDelegate> delegate;
- @end
- #endif // REMOTING_IOS_CLIENT_KEYBOARD_H_
|