2009-08-10 21 views
2

私はCocoaを初めて使用しています。私は本当に怒っている問題を抱えています。私は単純なNSStringNSTextViewに書き込もうとしていますが、なんらかの理由で応答しません。コンパイラの警告もランタイムエラーもなく、ただブランクtextviewNSTextViewはsetStringに応答しません

selectAll、delete、setSelectedRangesなどのNSTextViewの他のメソッドを使用することができます。これらはうまく動作し、AppleのDocsやネットで読み込まれたすべてのものから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メソッドでそれを持っていました。おっとっと!

関連する問題