2009-08-10 7 views
2

저는 Cocoa를 처음 사용하고 있으며, 나는 정말 미치광이가되어 왔습니다. 간단한 NSStringNSTextView에 쓰려고하는데 어떤 이유로 응답하지 않습니다. 컴파일러 경고 없음, 런타임 오류 없음, 그냥 공백 textview.NSTextView는 setString에 응답하지 않습니다.

selectAll, delete, setSelectedRanges 등과 같은 NSTextView의 다른 메소드를 사용할 수 있습니다. 제대로 작동하고 Apple의 문서 도구와 그물에서 읽은 모든 것에서 setString과 같은 메소드가 작동합니다. 나는 또한 시도했다 :

[[textView textStorage] setAttributedString:aString] 

텍스트의 NSAttributedString 버전을 사용하여 다시 결과가 없다. 문자열 메서드조차 완벽하게 작동하고 textView의 내용을 반환하지만 어떤 이유로 setString 등은 그렇지 않습니다. TextView는 편집 가능합니다. 디버거에서는 쓰려고하는 문자열의 값이 문제없이 나타납니다.

나는 그물에있는 모든 곳을 수색했으며 아무도이 문제를 안고있는 것 같습니다.

감사합니다, 조

+5

'textView'가 실제로'nil'이 아닌지 확인해보십시오. Interface Builder의 뷰에'textView'를 참조했는지 확인하십시오. – notnoop

답변

1

이 필드가 적극적으로 편집하는 동안 문자열 값을 설정하려고합니까? 텍스트 필드에 중점을 두는 동안 실제로 상호 작용하는 컨트롤은 해당 편집기 (NSTextView)이므로 텍스트 필드의 변경 내용은 아무런 영향을 미치지 않습니다.

0

주 스레드에서 -setString :을 호출하는지 확인하십시오. AppKit은 스레드로부터 안전하지 않습니다.

1

나는 알아 냈습니다. retainCount가 의미하는 것이지 확실치 않지만, 초기화되기 전에 textView에 메시지를 보내고있는 것처럼 보입니다. 내 -setString 문을 awakeFromNib 메서드로 옮겼다. 내 windowController의 -init 메서드에서 사용했다. OOps!

관련 문제