mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-21 09:02:44 +02:00
338f14b8db
Create a class KeyboardGrowingTextView which inherits from HPGrowingTextView, but defines keyCommands. keyCommands defined at any other view or controller layer weren’t being picked up by the OS, but they did work when added to HPGrowingTextView. Signed-off-by: Vivian Lim <vivvnlim@gmail.com>
52 lines
1.7 KiB
Objective-C
52 lines
1.7 KiB
Objective-C
/*
|
|
Copyright 2015 OpenMarket Ltd
|
|
Copyright 2017 Vector Creations Ltd
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#import <HPGrowingTextView.h>
|
|
#import "RoomInputToolbarView.h"
|
|
|
|
@interface KeyboardGrowingTextView: HPGrowingTextView
|
|
- (NSArray<UIKeyCommand *> *)keyCommands;
|
|
@end
|
|
|
|
@implementation KeyboardGrowingTextView
|
|
|
|
- (NSArray<UIKeyCommand *> *)keyCommands {
|
|
return @[
|
|
[UIKeyCommand keyCommandWithInput:@"\r" modifierFlags:0 action:@selector(keyCommandSelector:)]
|
|
];
|
|
}
|
|
|
|
- (void)keyCommandSelector:(UIKeyCommand *)sender {
|
|
if ([sender.input isEqualToString:@"\r"]){
|
|
// traverse the view hierarchy to get the RoomInputToolbarView
|
|
UIView *sv = [self superview];
|
|
int remainingDepth = 3; // give up after going up 3 levels.
|
|
|
|
while((sv = [sv superview]) && remainingDepth > 0) {
|
|
if ([sv class] == [RoomInputToolbarView class]){
|
|
RoomInputToolbarView *ritv = (RoomInputToolbarView *)sv;
|
|
[ritv onTouchUpInside:ritv.rightInputToolbarButton]; // touch the Send button.
|
|
return;
|
|
}
|
|
remainingDepth--;
|
|
}
|
|
}
|
|
}
|
|
|
|
@end
|