Skip to content
This repository was archived by the owner on May 6, 2019. It is now read-only.

Commit d619059

Browse files
committed
Update for RFKeyboardToolbar and should fix flickering bug with cursor
1 parent 01e0974 commit d619059

File tree

1 file changed

+26
-33
lines changed

1 file changed

+26
-33
lines changed

RFMarkdownTextView/RFMarkdownTextView.m

Lines changed: 26 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,16 @@ - (id)initWithFrame:(CGRect)frame {
3232
[layoutManager addTextContainer:container];
3333
[_syntaxStorage addLayoutManager:layoutManager];
3434

35-
self = [super initWithFrame:frame textContainer:container];
36-
if (self) {
35+
if (self = [super initWithFrame:frame textContainer:container]) {
3736
self.delegate = self;
38-
self.inputAccessoryView = [RFKeyboardToolbar toolbarViewWithButtons:[self buttons]];
37+
self.inputAccessoryView = [RFKeyboardToolbar toolbarWithButtons:[self buttons]];
3938
}
4039
return self;
4140
}
4241

4342

4443

45-
- (NSArray*)buttons {
44+
- (NSArray *)buttons {
4645
return @[[self createButtonWithTitle:@"#" andEventHandler:^{ [self insertText:@"#"]; }],
4746
[self createButtonWithTitle:@"*" andEventHandler:^{ [self insertText:@"*"]; }],
4847
[self createButtonWithTitle:@"_" andEventHandler:^{ [self insertText:@"_"]; }],
@@ -52,55 +51,49 @@ - (NSArray*)buttons {
5251
NSRange selectionRange = self.selectedRange;
5352
selectionRange.location += 1;
5453
[self insertText:@"[]()"];
55-
self.selectedRange = selectionRange;
54+
[self setSelectionRange:selectionRange];
55+
5656
}],
5757
[self createButtonWithTitle:@"Codeblock" andEventHandler:^{
5858
NSRange selectionRange = self.selectedRange;
59-
if (self.text.length == 0) {
60-
selectionRange.location += 3;
61-
[self insertText:@"```\n```"];
62-
}
63-
else {
64-
selectionRange.location += 4;
65-
[self insertText:@"\n```\n```"];
66-
}
67-
self.selectedRange = selectionRange;
59+
selectionRange.location += self.text.length == 0 ? 3 : 4;
60+
61+
[self insertText: self.text.length == 0 ? @"```\n```" : @"\n```\n```"];
62+
[self setSelectionRange:selectionRange];
6863
}],
6964
[self createButtonWithTitle:@"Image" andEventHandler:^{
7065
NSRange selectionRange = self.selectedRange;
7166
selectionRange.location += 2;
67+
7268
[self insertText:@"![]()"];
73-
self.selectedRange = selectionRange;
69+
[self setSelectionRange:self.selectedRange];
7470
}],
7571
[self createButtonWithTitle:@"Task" andEventHandler:^{
7672
NSRange selectionRange = self.selectedRange;
7773
selectionRange.location += 7;
78-
if (self.text.length == 0) {
79-
[self insertText:@"- [ ] "];
80-
}
81-
else {
82-
[self insertText:@"\n- [ ] "];
83-
}
84-
self.selectedRange = selectionRange;
74+
75+
[self insertText:self.text.length == 0 ? @"- [ ] " : @"\n- [ ] "];
76+
[self setSelectionRange:selectionRange];
8577
}],
8678
[self createButtonWithTitle:@"Quote" andEventHandler:^{
8779
NSRange selectionRange = self.selectedRange;
8880
selectionRange.location += 3;
89-
if (self.text.length == 0) {
90-
[self insertText:@"> "];
91-
}
92-
else {
93-
[self insertText:@"\n> "];
94-
}
95-
self.selectedRange = selectionRange;
81+
82+
[self insertText:self.text.length == 0 ? @"> " : @"\n> "];
83+
[self setSelectionRange:selectionRange];
9684
}]];
9785
}
9886

99-
- (RFToolbarButton*)createButtonWithTitle:(NSString*)title andEventHandler:(void(^)())handler {
100-
RFToolbarButton *button = [RFToolbarButton buttonWithTitle:title];
101-
[button addEventHandler:handler forControlEvents:UIControlEventTouchUpInside];
87+
- (void)setSelectionRange:(NSRange)range {
88+
UIColor *previousTint = self.tintColor;
10289

103-
return button;
90+
self.tintColor = UIColor.clearColor;
91+
self.selectedRange = range;
92+
self.tintColor = previousTint;
93+
}
94+
95+
- (RFToolbarButton *)createButtonWithTitle:(NSString*)title andEventHandler:(void(^)())handler {
96+
return [RFToolbarButton buttonWithTitle:title andEventHandler:handler forControlEvents:UIControlEventTouchUpInside];
10497
}
10598

10699
- (void)textViewDidChange:(UITextView *)textView {

0 commit comments

Comments
 (0)