Updated responder chain handling for view controller

This commit is contained in:
michael starke
2013-03-03 20:14:54 +01:00
parent 54b8afdda4
commit 4c59a137a2
7 changed files with 25 additions and 12 deletions

View File

@@ -196,11 +196,9 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
#pragma mark Notifications #pragma mark Notifications
- (void)_didChangeGroupSelectionInOutlineView:(NSNotification *)notification { - (void)_didChangeGroupSelectionInOutlineView:(NSNotification *)notification {
if([self hasFilter]) { if([self hasFilter]) {
return; [(MPMainWindowController *)[[self.view window] windowController] clearFilter:nil];
} }
[self clearFilter];
MPOutlineViewDelegate *delegate = [notification object]; MPOutlineViewDelegate *delegate = [notification object];
KdbGroup *group = delegate.selectedGroup; KdbGroup *group = delegate.selectedGroup;
if(group) { if(group) {

View File

@@ -16,5 +16,8 @@
- (void)showMainWindow:(id)sender; - (void)showMainWindow:(id)sender;
- (void)performFindPanelAction:(id)sender; - (void)performFindPanelAction:(id)sender;
- (void)clearOutlineSelection:(id)sender; - (void)clearOutlineSelection:(id)sender;
/*
Clears the Search filter
*/
- (void)clearFilter:(id)sender;
@end @end

View File

@@ -101,6 +101,7 @@
[self.outlineViewController.view setFrame:frame]; [self.outlineViewController.view setFrame:frame];
[self.outlineViewController.view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; [self.outlineViewController.view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
[self.splitView replaceSubview:self.outlineView with:[self.outlineViewController view]]; [self.splitView replaceSubview:self.outlineView with:[self.outlineViewController view]];
[self.outlineViewController updateResponderChain];
[self.splitView adjustSubviews]; [self.splitView adjustSubviews];
[self _setContentViewController:nil]; [self _setContentViewController:nil];
@@ -132,6 +133,7 @@
else { else {
[self.contentView addSubview:newContentView]; [self.contentView addSubview:newContentView];
} }
[viewController updateResponderChain];
[self.contentView setNeedsDisplay:YES]; [self.contentView setNeedsDisplay:YES];
[self.splitView adjustSubviews]; [self.splitView adjustSubviews];
/* /*

View File

@@ -65,6 +65,12 @@
[self.outlineView setAllowsEmptySelection:YES]; [self.outlineView setAllowsEmptySelection:YES];
} }
- (void)mouseUp:(NSEvent *)theEvent {
NSLog(@"Mouse Up!");
[super mouseUp:theEvent];
}
- (void)_didOpenDocument:(NSNotification *)notification { - (void)_didOpenDocument:(NSNotification *)notification {
[self.outlineView reloadData]; [self.outlineView reloadData];
MPDatabaseController *dbContoller = [MPDatabaseController defaultController]; MPDatabaseController *dbContoller = [MPDatabaseController defaultController];
@@ -79,7 +85,7 @@
- (void)_setupMenu { - (void)_setupMenu {
NSMenu *menu = [[NSMenu allocWithZone:[NSMenu menuZone]] init]; NSMenu *menu = [[NSMenu allocWithZone:[NSMenu menuZone]] init];
[menu addItemWithTitle:@"Add Group" action:@selector(addEntry:) keyEquivalent:@""]; [menu addItemWithTitle:@"Add Group" action:@selector(_addEntry:) keyEquivalent:@""];
[menu addItem: [NSMenuItem separatorItem]]; [menu addItem: [NSMenuItem separatorItem]];
[menu addItemWithTitle:@"Delete" action:NULL keyEquivalent:@""]; [menu addItemWithTitle:@"Delete" action:NULL keyEquivalent:@""];
for(NSMenuItem *item in [menu itemArray]) { for(NSMenuItem *item in [menu itemArray]) {

View File

@@ -12,5 +12,6 @@
- (void)didLoadView; - (void)didLoadView;
- (NSResponder *)reconmendedFirstResponder; - (NSResponder *)reconmendedFirstResponder;
- (void)updateResponderChain;
@end @end

View File

@@ -12,12 +12,7 @@
- (void)loadView { - (void)loadView {
[super loadView]; [super loadView];
[self updateResponderChain];
/* Insert ourselfs in the responder chain */
NSResponder *nextResponder = [[self view] nextResponder];
[[self view] setNextResponder:self];
[self setNextResponder:nextResponder];
[self didLoadView]; [self didLoadView];
} }
@@ -29,4 +24,12 @@
return nil; return nil;
} }
- (void)updateResponderChain {
if(self.view) {
NSResponder *nextResponder = [[self view] nextResponder];
[[self view] setNextResponder:self];
[self setNextResponder:nextResponder];
}
}
@end @end

View File

@@ -21,7 +21,7 @@
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>3BB</string> <string>3C8</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string> <string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>