mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-25 13:07:02 +00:00
- Removed unnecessary code at beginning of CPTextField -becomeFirstResponder that might have been a hack to get around a bug I fixed. - Fixed race condition in setTimeout closure in CPTextField -becomeFirstResponder. - CPWindow -setInitialFirstResponder now works reliably and follows Cocoa behavior in that if -makeFirstResponder is called with something other than the window before the window is first shown, it will override the initial first responder. - Like Cocoa, until the first responder is set during window load, the first responder is the window by default, not the content view. - Optimized search for any view that has a previous/next key view set. - Sheets can become key windows again. - CPWindow -recalculateKeyViewLoop now just marks the loop as dirty, per Cocoa docs. - CPWindow -autorecalculatesKeyViewLoop now behaves per Cocoa, it only has an effect when views are added or removed. - If the first responder does not have a valid previous/next key view, it does not resign to nil, per Cocoa behavior. - Code optimization and cleanup. - Test app (KeyViewLoopTest) that demonstrates various scenarios.
45 lines
873 B
Plaintext
45 lines
873 B
Plaintext
/*
|
|
* AppController.j
|
|
* KeyViewLoopTest
|
|
*
|
|
* Created by You on January 7, 2013.
|
|
* Copyright 2013, Your Company All rights reserved.
|
|
*/
|
|
|
|
@import <Foundation/CPObject.j>
|
|
|
|
|
|
@implementation AppController : CPObject
|
|
{
|
|
@outlet CPWindow customNoInitial;
|
|
}
|
|
|
|
- (void)applicationDidFinishLaunching:(CPNotification)aNotification
|
|
{
|
|
[customNoInitial makeKeyAndOrderFront:self];
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
@implementation MyWindow : CPWindow
|
|
|
|
- (@action)addField:(id)sender
|
|
{
|
|
var field = [CPTextField textFieldWithStringValue:@"" placeholder:@"" width:96];
|
|
|
|
[field setFrameOrigin:CGPointMake(43, 135)];
|
|
[[self contentView] addSubview:field];
|
|
|
|
[sender setEnabled:NO];
|
|
[self makeFirstResponder:[[self contentView] viewWithTag:1]];
|
|
}
|
|
|
|
- (@action)recalc:(id)sender
|
|
{
|
|
[self recalculateKeyViewLoop];
|
|
[self makeFirstResponder:[[self contentView] viewWithTag:1]];
|
|
}
|
|
|
|
@end
|