2016-03-21 14 views
0

私はTextKitNSTextContainersizeの変更を知る必要があるので、私はNSLayoutManagerのいくつかのキャッシュを更新できます。 sizeが変更されたときに通知を受け取るにはどうすればよいですか? TextKit(一般的にNSTextContainersizeのプロパティ)はKVOをサポートしていますか? NSTextContainer.hヘッダーとNSTextContainer documetationを確認しましたが、どちらの方法も見つけられません。TextKitのNSTextContainerのサイズが変更されたときに通知を受け取るにはどうすればよいですか?

答えて

1

NSTextContainerは、その大きさや形状が変化したときにそのNSLayoutManager-[NSLayoutManager textContainerChangedGeometry:]を呼び出すようになっている。

この方法は、テキスト システムの他のコンポーネントによって自動的に呼び出されます。それを直接呼び出す必要はほとんどありません。 のサブクラスただし、NSTextContainerは、図形のサイズが に変更されるといつでもこのメソッドを呼び出す必要があります。 グラフィックスが追加、移動されたときに、配置されたグラフィックの周りにテキストを折り返すようにその形状を動的に調整するテキストコンテナ 、または除去される)。

私はそれがheightTracksTextViewまたはwidthTracksTextViewNSTextContainerに設定されている必要がありますかどうかを判断するために、これをテストしていません。そのverticallyResizableまたはhorizontallyResizableNSLayoutManagerに設定します。またはプログラムで-[NSTextContainer setSize:]または-[NSTextContainer setSimpleRectangularTextContainer:]を呼び出すと、自動的に-[NSLayoutManager textContainerChangedGeometry:]がアドバタイズされます。

+0

正確に。これは受け入れられた答えでなければなりません。 –

関連する問題