2016-09-22 3 views
3

Sierra (릴리스 빌드) 용 NSTextView에서 setUsesInspectorBar를 호출하는 충돌을 본 사람이 있습니까? 이 코드는 10.11.5에서 정상적으로 작동했지만 Sierra의 AppKit에서 충돌합니다. 베타 버전 버그라고 생각했는데 아직 풀 버전으로 출시되고 있습니다.Sierra 10.12에서 NSTextView 계수기 막대 충돌

여기에 lldb의 백 추적이 있습니다.

(lldb) bt 
* thread #1: tid = 0x76deb, 0x9ecfe013 libobjc.A.dylib`objc_msgSend + 19, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xa007cc0f) 
    * frame #0: 0x9ecfe013 libobjc.A.dylib`objc_msgSend + 19 
    frame #1: 0x95c5f861 Foundation`releasingRelinquish + 29 
    frame #2: 0x95c22636 Foundation`-[NSConcreteMapTable removeObjectForKey:] + 127 
    frame #3: 0x92fbec6e AppKit`-[NSStackViewContainer removeView:] + 102 
    frame #4: 0x92798554 AppKit`-[NSStackView _insertView:atIndex:inGravity:animated:] + 212 
    frame #5: 0x9279847b AppKit`-[NSStackView insertView:atIndex:inGravity:] + 40 
    frame #6: 0x9279839b AppKit`-[NSStackView addView:inGravity:] + 78 
    frame #7: 0x92f5ec2c AppKit`-[__NSInspectorBarView addItem:] + 71 
    frame #8: 0x929281c1 AppKit`__23-[NSInspectorBar _tile]_block_invoke + 303 
    frame #9: 0x94566871 CoreFoundation`__53-[__NSArrayM enumerateObjectsWithOptions:usingBlock:]_block_invoke + 81 
    frame #10: 0x94566717 CoreFoundation`-[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 167 
    frame #11: 0x945665f5 CoreFoundation`-[NSArray enumerateObjectsUsingBlock:] + 53 
    frame #12: 0x92925e95 AppKit`-[NSInspectorBar _tile] + 484 
    frame #13: 0x92924e3d AppKit`-[NSInspectorBar _update] + 224 
    frame #14: 0x92630b28 AppKit`-[NSTextView updateInspectorBar] + 71 
    frame #15: 0x9263159b AppKit`-[NSTextView updateRuler] + 2622 
    frame #16: 0x9292440f AppKit`-[NSTextView(NSSharing) setUsesInspectorBar:] + 350 
    frame #17: 0x0014eef4 DockShelf`"-[TTextEditorWindowController awakeFromNib]"(self=0x0073ecc0, _cmd="awakeFromNib") + 116 at UTextEditor_2.pas:124 

답변

2

이것은 32 비트 앱이 포함 된 AppKit의 버그입니다. 불행히도, inspector bar support를 제거하지 않고도 해결할 수있는 것은 아니며 AppKit에 수정이 필요합니다.


이는 10.12.2 내가 XIB의 창에서 (NSScrollView에 포함)를 NSTextView는 이동 시도하고 다시 추가

+0

예, 그게 전부입니다! 몇 가지 고대 코드를 64 비트로 업데이트해야하지만 시간이 맞춰야 할 것 같습니다. 나는 이것이 10.12+라고 확신한다. 그래서 애플은 to-do 목록에 이것을 가지고 있을지도 모른다. 그러나 그것은 또한 몇 달 또는 몇 년 동안 무시 될 수 있었다. ... – GenericPtr

+0

애플에보고 된 : http://www.openradar.me/radar? id = 5005564551626752 - 데모 프로젝트를 포함합니다. (힌트 : 누군가 10.12 베타 버전에서 이미이 버그에 대해 알고 있었고 Apple에 신고하지 않은 경우 - 수치 스럽다!) –

0

IB에서 NSTextView 구성 요소를 제거한 다음 구성 요소 팔레트에서 다시 삽입하십시오. 이전 XIB 파일에 NIB 파일에 제대로 인식되지 않거나 컴파일되지 않고 Sierra가 파일을 처리 할 수없는 일부 키워드가 포함되어있을 수 있습니다.

+0

고정해야하지만 도움이 될 것 같지 않습니다. inspector 막대는 setUsesInspectorBar를 사용하여 코드에서 설정되었으므로 관련성이있는 것은 아닙니다. – GenericPtr