osx lion - فتح التركيز على طريقة العرض الخاطئة((خالية)) ضمن OS X 10.7.2




osx-lion xcode4.2 (2)

لدي تطبيق Cocoa يحتوي على NSWindowController يتحكم في NSWindow مع NSComboBox فيه. لا شيء خاص ، وعملت بشكل جيد حتى الترقية إلى OS X 10.7.2. الآن أحصل على الاستثناء التالي ، والذي يحدث مرة واحدة فقط ، عندما يتم تحميل نافذة نافذة تحكم النافذة. (نظرًا لأن وحدة التحكم في النافذة في تطبيقي لا تزال محملة ، فإنها تحدث مرة واحدة فقط في كل مرة يتم فيها تشغيل التطبيق.) وفي وقت لاحق ، لا يؤدي تركيز مربع التحرير والسرد وإعادة التركيز عليه إلى تشغيله.

أي شخص يعرف ما إذا كان شيء تغير في 10.7.2 ، وإذا كان الأمر كذلك كيفية العمل حوله؟

(هذا يحدث مع 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
)

يمكنك محاولة استدعاء هذا الأمر على NSComboBox: setFocusRingType: NSFocusRingTypeNone وهذا يجب أن يعالج المشكلة ، على الرغم من أنه لا يشرح الفرق بين الإصدارين.