diff options
author | Teddy Wing | 2023-09-09 20:35:01 +0200 |
---|---|---|
committer | Teddy Wing | 2023-09-09 20:35:01 +0200 |
commit | 70a98332cba2a71fe6ffb109e40877bf48e89386 (patch) | |
tree | 3a7c68ed82409d2175b0604550c4d20214cccdc6 /src/AppDelegate.m | |
parent | 059f8a488eae81aa5a023e7fb0df6a437684106b (diff) | |
download | Base-Windowed-Application-70a98332cba2a71fe6ffb109e40877bf48e89386.tar.bz2 |
AppDelegate: Add NSTextFinder find bar
Add a find bar leveraging NSTextFinder. It turns out I didn't need to do
anything custom with `NSTextFinder` since `NSTextView` conveniently
already has a `usesFindBar` property to turn on built-in support for it.
I discovered that by looking at the TextEdit source code available here:
https://developer.apple.com/library/archive/samplecode/TextEdit/Introduction/Intro.html
I added an `NSScrollView` because you kind of need one to implement
`NSTextFinder`. Not sure if the finding functionality would still work
without the scroll view.
Also use the proper `-performTextFinderAction:` selector for the "Find…"
menu item to open the find bar.
Now we can confirm that the "Find" menu items work correctly.
Diffstat (limited to 'src/AppDelegate.m')
-rw-r--r-- | src/AppDelegate.m | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/AppDelegate.m b/src/AppDelegate.m index d6cef3e..3df04e0 100644 --- a/src/AppDelegate.m +++ b/src/AppDelegate.m @@ -6,7 +6,9 @@ - (void)dealloc { [_window release]; + [_scroll_view release]; [_text_view release]; + // [_text_finder release]; [super dealloc]; } @@ -34,8 +36,20 @@ _text_view = [[NSTextView alloc] initWithFrame:NSMakeRect(0, 0, 400, 400)]; [_text_view setAllowsUndo:YES]; - [[_window contentView] addSubview:_text_view]; + [_text_view setUsesFindBar:YES]; + + _scroll_view = [[NSScrollView alloc] + initWithFrame:NSMakeRect(0, 0, 400, 400)]; + [_scroll_view setAutohidesScrollers:YES]; + [_scroll_view setHasVerticalScroller:YES]; + [_scroll_view setDocumentView:_text_view]; + + [[_window contentView] addSubview:_scroll_view]; // [_window setContentView:_text_view]; + + // _text_finder = [[NSTextFinder alloc] init]; + // [_text_finder setClient:(id<NSTextFinderClient>)_text_view]; + // [_text_finder setFindBarContainer:_scroll_view]; } - (void)applicationDidFinishLaunching:(NSNotification *)notification @@ -44,4 +58,10 @@ [_window makeKeyAndOrderFront:nil]; } +// - (IBAction)performTextFinderAction:(id)sender +// { +// NSLog(@"performTextFinderAction: performing %ld", [sender tag]); +// [_text_finder performAction:[sender tag]]; +// } + @end |