• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Exception in AppKit while exercising key-loop
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Exception in AppKit while exercising key-loop


  • Subject: Exception in AppKit while exercising key-loop
  • From: Michael Crawford <email@hidden>
  • Date: Thu, 15 Mar 2012 15:49:39 -0400

I have a custom popover control containing multiple sliders and textfields (http://dl.dropbox.com/u/4920112/Screenshots/SliderPopover.PNG).  When tabbing through the textfields I get the following exception:

2012-03-15 12:19:42.805 SettingsBar[7232:603] *** Assertion failure in +[LSPopupSliderView _findFirstKeyViewInDirection:forKeyLoopGroupingView:], /SourceCache/AppKit/AppKit-1138.32/AppKit.subproj/NSView.m:11103
2012-03-15 12:19:42.806 SettingsBar[7232:603] Exception detected while handling key input.
2012-03-15 12:19:42.806 SettingsBar[7232:603] this method is supposed to only be invoked on top level items
2012-03-15 12:19:42.809 SettingsBar[7232:603] (
	0   CoreFoundation                      0x9b07cb67 __raiseError + 231
	1   libobjc.A.dylib                     0x9859c149 objc_exception_throw + 155
	2   CoreFoundation                      0x9afe4369 +[NSException raise:format:arguments:] + 137
	3   Foundation                          0x93049267 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 116
	4   AppKit                              0x9ab46d93 +[NSView _findFirstKeyViewInDirection:forKeyLoopGroupingView:] + 143
	5   AppKit                              0x9a5c8367 _replacementKeyViewAlongKeyViewPath + 595
	6   AppKit                              0x9a5c8107 -[NSView nextValidKeyView] + 193
	7   AppKit                              0x9aa91e28 -[NSTextField textDidEndEditing:] + 1053
	8   Foundation                          0x92f85e25 __-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_1 + 49
	9   CoreFoundation                      0x9afbccb3 ___CFXNotificationPost_block_invoke_1 + 275
	10  CoreFoundation                      0x9af87a38 _CFXNotificationPost + 2776
	11  Foundation                          0x92f71012 -[NSNotificationCenter postNotificationName:object:userInfo:] + 92
	12  AppKit                              0x9aaee107 -[NSTextView(NSPrivate) _giveUpFirstResponder:] + 460
	13  AppKit                              0x9aad18be -[NSTextView(NSKeyBindingCommands) insertTab:] + 506
	14  CoreFoundation                      0x9afd1de1 -[NSObject performSelector:withObject:] + 65
	15  AppKit                              0x9a9cf328 -[NSResponder doCommandBySelector:] + 260
	16  AppKit                              0x9aac54e2 -[NSTextView doCommandBySelector:] + 152
	17  AppKit                              0x9aca2b81 -[NSTextInputContext doCommandBySelector:] + 109
	18  AppKit                              0x9ac9ec72 -[NSTextInputContext _handleCommand:] + 84
	19  AppKit                              0x9a8dcf67 -[NSKeyBindingManager(NSKeyBindingManager_MultiClients) interpretEventAsCommand:forClient:] + 1721
	20  AppKit                              0x9aca361a -[NSTextInputContext handleEvent:] + 1389
	21  AppKit                              0x9ab47636 -[NSView interpretKeyEvents:] + 220
	22  AppKit                              0x9aab47ba -[NSTextView keyDown:] + 676
	23  AppKit                              0x9a50f9c3 -[NSWindow sendEvent:] + 10891
	24  AppKit                              0x9a4a70e7 -[NSApplication sendEvent:] + 4788
	25  AppKit                              0x9a4386d5 -[NSApplication run] + 1007
	26  AppKit                              0x9a6cc261 NSApplicationMain + 1054
	27  SettingsBar                         0x0000251b main + 43
	28  SettingsBar                         0x000024e5 start + 53
	29  ???                                 0x00000003 0x0 + 3
)

Thinking I might solve the problem by explicitly setting up my own key-loop I modified my construction and layout method thus:

- (void)setSliders:(NSArray *)sliders
{
    // Adds all of the required sliders at once.  Any sliders already existing
    // will be removed and released.  This method also has the advantage that
    // the code to resize the view to accomodate the longest slider, will only
    // run once.
    for ( MCComplexSlider * slider in _sliders )
    {
        [slider removeFromSuperview];
    }

    [_sliders removeAllObjects];

    NSTextField *prevTextField = nil;

    for ( MCComplexSlider *slider in sliders )
    {
        [prevTextField setNextKeyView:slider.textField];
        prevTextField = slider.textField;
        [_sliders addObject:slider];
        [self.view addSubview:slider];
    }

    [prevTextField setNextKeyView:[[sliders objectAtIndex:0] textField]];
    [self layoutSliders];
}

No difference in behavior.  I still get the exception and in both cases, after the exception is raised and dumped to the console, the program continues to run without incident and the key-loop is magically healed.  Having an exception dump to the console is not something I'm prepared to ignore.  Does anyone have an explanation for what is really going on here?

Thanks.

-Michael

_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Prev by Date: Re: [Q] Why is the threading and UI updating designed to be done only on a main thread?
  • Next by Date: NSViewAnimation fade[In/Out]effect not working
  • Previous by thread: Re: Cocoa-dev Digest, Vol 9, Issue 176
  • Next by thread: NSViewAnimation fade[In/Out]effect not working
  • Index(es):
    • Date
    • Thread