pressing down on search field will move to entries list

This commit is contained in:
Michael Starke
2017-12-11 17:05:57 +01:00
parent 5e0d95cdc5
commit 92c83e0fa0
2 changed files with 12 additions and 2 deletions

View File

@@ -24,7 +24,7 @@
@class MPDocument; @class MPDocument;
@interface MPToolbarDelegate : NSObject <NSToolbarDelegate> @interface MPToolbarDelegate : NSObject <NSToolbarDelegate, NSTextFieldDelegate>
@property (weak, readonly) NSSearchField *searchField; @property (weak, readonly) NSSearchField *searchField;
@property (weak) NSToolbar *toolbar; @property (weak) NSToolbar *toolbar;

View File

@@ -171,7 +171,8 @@ NSString *const MPToolbarItemHistory = @"TOOLBAR_HISTORY";
item.minSize = NSMakeSize(140, 32); item.minSize = NSMakeSize(140, 32);
item.maxSize = NSMakeSize(240, 32); item.maxSize = NSMakeSize(240, 32);
NSMenu *templateMenu = [self _allocateSearchMenuTemplate]; NSMenu *templateMenu = [self _allocateSearchMenuTemplate];
[searchField.cell setSearchMenuTemplate:templateMenu]; searchField.searchMenuTemplate = templateMenu;
((NSTextField *)searchField).delegate = self;
self.searchField = searchField; self.searchField = searchField;
} }
else { else {
@@ -224,6 +225,15 @@ NSString *const MPToolbarItemHistory = @"TOOLBAR_HISTORY";
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_didEnterSearch:) name:MPDocumentDidEnterSearchNotification object:document]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_didEnterSearch:) name:MPDocumentDidEnterSearchNotification object:document];
} }
#pragma mark - NSSearchFieldDelegate
- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)commandSelector {
if(commandSelector == @selector(moveDown:)) {
[[NSApp targetForAction:@selector(focusEntries:) to:nil from:self] focusEntries:self];
}
return NO;
}
#pragma mark - Private
- (NSString *)_localizedLabelForToolbarItemIdentifier:(NSString *)identifier { - (NSString *)_localizedLabelForToolbarItemIdentifier:(NSString *)identifier {
static NSDictionary *labelDict; static NSDictionary *labelDict;
static dispatch_once_t onceToken; static dispatch_once_t onceToken;