@@ -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