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
)
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.
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.