Return key to send: use delegate instead of traversing view hierarchy

Signed-off-by: Vivian Lim <vivvnlim@gmail.com>
This commit is contained in:
Vivian Lim
2017-09-22 17:49:53 -07:00
parent e09924a117
commit 25a0564738

View File

@@ -32,19 +32,9 @@
}
- (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--;
}
if ([sender.input isEqualToString:@"\r"] && [self.delegate isKindOfClass: RoomInputToolbarView.class]){
RoomInputToolbarView *ritv = (RoomInputToolbarView *)self.delegate;
[ritv onTouchUpInside:ritv.rightInputToolbarButton]; // touch the Send button.
}
}