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

Commit

Permalink
Update for RFKeyboardToolbar and should fix flickering bug with cursor
Browse files Browse the repository at this point in the history
  • Loading branch information
ruddfawcett committed Dec 26, 2014
1 parent 01e0974 commit d619059
Showing 1 changed file with 26 additions and 33 deletions.
59 changes: 26 additions & 33 deletions RFMarkdownTextView/RFMarkdownTextView.m
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,16 @@ - (id)initWithFrame:(CGRect)frame {
[layoutManager addTextContainer:container];
[_syntaxStorage addLayoutManager:layoutManager];

self = [super initWithFrame:frame textContainer:container];
if (self) {
if (self = [super initWithFrame:frame textContainer:container]) {
self.delegate = self;
self.inputAccessoryView = [RFKeyboardToolbar toolbarViewWithButtons:[self buttons]];
self.inputAccessoryView = [RFKeyboardToolbar toolbarWithButtons:[self buttons]];
}
return self;
}



- (NSArray*)buttons {
- (NSArray *)buttons {
return @[[self createButtonWithTitle:@"#" andEventHandler:^{ [self insertText:@"#"]; }],
[self createButtonWithTitle:@"*" andEventHandler:^{ [self insertText:@"*"]; }],
[self createButtonWithTitle:@"_" andEventHandler:^{ [self insertText:@"_"]; }],
Expand All @@ -52,55 +51,49 @@ - (NSArray*)buttons {
NSRange selectionRange = self.selectedRange;
selectionRange.location += 1;
[self insertText:@"[]()"];
self.selectedRange = selectionRange;
[self setSelectionRange:selectionRange];

}],
[self createButtonWithTitle:@"Codeblock" andEventHandler:^{
NSRange selectionRange = self.selectedRange;
if (self.text.length == 0) {
selectionRange.location += 3;
[self insertText:@"```\n```"];
}
else {
selectionRange.location += 4;
[self insertText:@"\n```\n```"];
}
self.selectedRange = selectionRange;
selectionRange.location += self.text.length == 0 ? 3 : 4;

[self insertText: self.text.length == 0 ? @"```\n```" : @"\n```\n```"];
[self setSelectionRange:selectionRange];
}],
[self createButtonWithTitle:@"Image" andEventHandler:^{
NSRange selectionRange = self.selectedRange;
selectionRange.location += 2;

[self insertText:@"![]()"];
self.selectedRange = selectionRange;
[self setSelectionRange:self.selectedRange];
}],
[self createButtonWithTitle:@"Task" andEventHandler:^{
NSRange selectionRange = self.selectedRange;
selectionRange.location += 7;
if (self.text.length == 0) {
[self insertText:@"- [ ] "];
}
else {
[self insertText:@"\n- [ ] "];
}
self.selectedRange = selectionRange;

[self insertText:self.text.length == 0 ? @"- [ ] " : @"\n- [ ] "];
[self setSelectionRange:selectionRange];
}],
[self createButtonWithTitle:@"Quote" andEventHandler:^{
NSRange selectionRange = self.selectedRange;
selectionRange.location += 3;
if (self.text.length == 0) {
[self insertText:@"> "];
}
else {
[self insertText:@"\n> "];
}
self.selectedRange = selectionRange;

[self insertText:self.text.length == 0 ? @"> " : @"\n> "];
[self setSelectionRange:selectionRange];
}]];
}

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

return button;
self.tintColor = UIColor.clearColor;
self.selectedRange = range;
self.tintColor = previousTint;
}

- (RFToolbarButton *)createButtonWithTitle:(NSString*)title andEventHandler:(void(^)())handler {
return [RFToolbarButton buttonWithTitle:title andEventHandler:handler forControlEvents:UIControlEventTouchUpInside];
}

- (void)textViewDidChange:(UITextView *)textView {
Expand Down

0 comments on commit d619059

Please sign in to comment.