53 votes

Déverrouillage du focus sur une vue erronée ((null)) sous OS X 10.7.2

J'ai un Cacao application qui a un NSWindowController contrôle d'un NSWindow avec un NSComboBox . Rien de spécial, et il a bien fonctionné jusqu'à ce que la mise à niveau vers OS X 10.7.2. Maintenant, je reçois l'exception suivante, qui se produit une seule fois, lorsque la fenêtre du contrôleur de la fenêtre de charges. (Depuis la fenêtre contrôleur dans mon application reste chargé, il arrive seulement une fois par application se lance.) Par la suite en se concentrant et en unfocusing la liste déroulante ne pas la déclencher.

Quelqu'un sait si quelque chose a changé dans 10.7.2, et si oui, comment la contourner?

(Ce qui se passe avec Xcode 4.2.)

2011-10-24 11:30:21.649 MyApp[7934:707] Unlocking Focus on wrong view ((null)), expected <NSComboBox: 0x40083d6e0>
2011-10-24 11:30:21.653 MyApp[7934:707] (
    0   CoreFoundation    0x00007fff8412d286 __exceptionPreprocess + 198
    1   libobjc.A.dylib   0x00007fff88cdad5e objc_exception_throw + 43
    2   CoreFoundation    0x00007fff8412d0ba +[NSException raise:format:arguments:] + 106
    3   CoreFoundation    0x00007fff8412d044 +[NSException raise:format:] + 116
    4   AppKit            0x00007fff8c76c1d5 -[NSFocusStack unfocusView:] + 194
    5   AppKit            0x00007fff8c7e838e +[_NSAutomaticFocusRing showForView:] + 2545
    6   AppKit            0x00007fff8cdbb4d1 __postActiveFirstResponderChanged_block_invoke_1 + 32
    7   CoreFoundation    0x00007fff840ecf37 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    8   CoreFoundation    0x00007fff840ece96 __CFRunLoopDoObservers + 374
    9   CoreFoundation    0x00007fff840c2159 __CFRunLoopRun + 825
    10  CoreFoundation    0x00007fff840c1ae6 CFRunLoopRunSpecific + 230
    11  HIToolbox         0x00007fff8c0d73d3 RunCurrentEventLoopInMode + 277
    12  HIToolbox         0x00007fff8c0de58f ReceiveNextEventCommon + 181
    13  HIToolbox         0x00007fff8c0de4ca BlockUntilNextEventMatchingListInMode + 62
    14  AppKit            0x00007fff8c71e3f1 _DPSNextEvent + 659
    15  AppKit            0x00007fff8c71dcf5 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 135
    16  AppKit            0x00007fff8c71a62d -[NSApplication run] + 470
    17  AppKit            0x00007fff8c99980c NSApplicationMain + 867
    18  MyApp             0x0000000100001682 main + 34
    19  MyApp             0x0000000100001654 start + 52
)

0voto

David Elliman Points 1005

Vous pouvez essayer d'appeler cette commande sur la NSComboBox: setFocusRingType: NSFocusRingTypeNone Cela devrait résoudre le problème, bien que cela n'explique pas la différence entre les deux versions.

0voto

user3210324 Points 26

http://hints.macworld.com/index.php?topic=system107&page=5

Cela semble être un bogue de la série OS X 10.7. * (Lion). Avec aucun changement dans mon code, le crash ne se produit plus sur OS X 10.8 (Mountain Lion) conforme à Xcode 4.4.1.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X