Déverrouillage Focus sur mauvaise vue ((null)) sous OS X 10.7.2

J'ai un Cacao application qui a un NSWindowController contrôle d'un NSWindow avec NSComboBox dans lui. Rien de spécial, et cela a bien fonctionné jusqu'à la mise à niveau vers OS X 10.7.2. Maintenant, je reçois l'exception suivante, qui ne se produit qu'une seule fois, lorsque la fenêtre du contrôleur de fenêtre se charge. (Puisque le contrôleur de fenêtre dans mon application reste chargé, cela n'arrive qu'une seule fois par lancement d'application.) Par la suite, la mise au point et le défocalisation de la zone de liste déroulante ne le déclenchent pas.

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

(cela se produit 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
)
54
demandé sur Paras Joshi 2011-10-24 23:22:43

2 réponses

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

Cela semble avoir été un bug dans OS X 10.7.* (Lion) de la série. Avec zéro modification de mon code, le crash ne se produit plus sur OS X 10.8 (Mountain Lion) conforme à Xcode 4.4.1.

0
répondu user3210324 2014-01-18 17:32:40

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

0
répondu David Elliman 2013-08-05 17:46:56