問題タブ [nstextstorage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
38 参照

objective-c - 一時的な NSTextView はカスタム NSColor サブクラスを呼び出し、バックグラウンド スレッドで UI を呼び出します

バックグラウンド スレッドでテキスト ブロックの高さを測定しています。DynamicColorなんらかの理由で、アプリケーションの起動直後にこれが発生した場合、アプリがダーク モードかどうかをチェックするため、スレッドはメイン スレッドにある必要がある NSColor サブクラスを呼び出します。

バックグラウンド スレッドが実行されているクラスには、 への参照はありませんがDynamicColorNSTextStorageが割り当てられると、 DynamicColor が呼び出されます。バックグラウンド タスクから UI 呼び出しを行うと、エラーが発生します。

が存在することを知らないクラスを呼び出す方法がNSTextStorageわかりません。私のNSDocumentサブクラスだけがそれを参照しており、他のクラスはそれを認識していません。

のバックグラウンド スレッドへの呼び出しNSDocument:

バックグラウンド スレッドは、文字列データを含む多数の要素を調べて、それらの高さを計算します。

が割り当てられたDynamicColorときに呼び出されます。NSTextStorageでメインスレッドかどうかを確認することでクラッシュは回避できましたDynamicColorが、エラーの原因が気になります。

DynamicColorNSColorサブクラスです。関連する部分は次のとおりです。

前景色を無地にしてみNSColorましたがダメでした。NSTextContainerアプリの実行時に毎回エラーが発生するわけではなく、テスト環境では問題を再現できませんでした。また、これが発生するのは、テキスト コンテナーが割り当てられるのは初めてです。

0 投票する
1 に答える
103 参照

ios - NSLayoutManager numberOfGlyphs は常に 0、Swift を表示します

必要な属性付きテキストを含む各ページに UITextView を使用して複数ページの PDF を作成しようとしています。しかし、アプリがアーカイブされ、テストのためにTestFlightを介して配布されたときに問題が発生した場合。

以下は、マルチページを生成するために使用したサンプルコードです。

これは、シミュレーターまたは Xcode からビルドされたデバイスで実行すると完全に正常に動作しますが、アプリが配布されるとすぐに、layoutManager.numberOfGlyphs表示されるレイアウトマネージャーを print() しても、常に 0 が返されます。

何かばかげたことを見逃したのでしょうか、それとも私が気付いていないバグがありますか? なぜそれが機能しないのか、一生理解できません!

与えられた助けに感謝します。

0 投票する
1 に答える
91 参照

macos - NSTextInputClientで入力メソッドのステータスを確認するには?

docs から、入力コンテキストが次のメソッドのいずれかをテキスト ビューに送信することがわかります。

  • insertText:replacementRange:
  • setMarkedText:selectedRange:replacementRange:
  • doCommandBySelector:

私のテストケースでは、入力メソッドを有効にすると、keyDownをトリガーできますが、最後の文字までsetMarkedText:selectedRange:replacementRange削除し続けると、上記のメソッドをトリガーせずに入力メソッドが非アクティブになります。markedText

入力メソッドが非アクティブ化されるとすぐに何かを実行できるように、非アクティブ化のためのフックのようなものはありますか?

0 投票する
1 に答える
109 参照

swift - NSTextStorage 内の将来のテキストのみの属性を変更するには?

良い一日、

NSTextStorage 内の将来のテキストのみの属性を変更する方法を知りたいです。textStorage の属性を設定すると、将来のテキストではなく、テキスト ストレージ内のすべてのテキストが変更されます。誰かがこれで私を助けることができれば. 高く評価されます。

ありがとうございました