2

私はCocoaを初めて使用しますが、非常に厄介な問題を抱えています。NSStringに単純なものを書き込もうとしていますがNSTextView、何らかの理由で応答しません。コンパイラの警告、ランタイムエラーはなく、空白だけtextviewです。

selectAll、delete、setSelectedRangesなど、NSTextViewの他のメソッドを使用できます。これらは正常に機能し、Appleのドキュメントやネットで読んだすべてのメソッドから、setStringなどのメソッドが機能するはずです。私も試しました:

[[textView textStorage] setAttributedString:aString]

NSAttributedStringバージョンのテキストを使用しますが、結果はありません。文字列メソッドでも完全に機能し、textViewの内容を返しますが、何らかの理由でsetStringなどは機能しません。TextViewは編集可能です。デバッガーでは、書き込もうとしている文字列の値が問題なく表示されます。

私はネット上のいたるところを検索しましたが、他の誰もこの問題を抱えていないようです。

ありがとう、ジョー

4

3 に答える 3

1

これがretainCountの意味するものかどうかはわかりませんが、初期化される前にメッセージをtextViewに送信していたようです。-setString ステートメントを awakeFromNib メソッドに移動したところ、機能しました。私はwindowControllerの-initメソッドでそれを持っていました。おっとっと!

于 2009-08-17T19:23:51.750 に答える
1

フィールドがアクティブに編集されている間に文字列値を設定しようとしていますか? テキスト フィールドがフォーカスされている間、実際に操作しているコントロールはそのエディター (NSTextView) であるため、テキスト フィールドのストレージを変更しても効果はありません。

于 2009-08-10T21:21:53.970 に答える
0

メインスレッドで -setString: を呼び出していることを確認してください。AppKit はスレッドセーフではありません。

于 2009-08-11T01:00:58.793 に答える