問題タブ [textkit]

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 投票する
2 に答える
3474 参照

ios7 - iOS 7 UITextView: アプリケーションを再度開いた後、nstextattachment のサイズが 2 倍になる

iOS7 でテキスト キットを使用してノート エディターを構築しています。以前、カスタム サイズの NSTextAttachment のレンダリングで問題が発生しました。レンダリングが大幅に遅くなったためです。画像をスケーリングしてからテキストビューに追加することで問題を解決しまし た。それに画像を追加する 画像をスケーリングした後、テキストビューのレンダリングは遅延なく正常に実行されます。テキストビューの属性付きテキストはコアデータに保存されます。アプリケーションの実行中のセッション中、テキストビューは画像を正しく表示します。属性付きテキストをコアデータに保存して取得した後でももう一度テキストビューに表示すると、画像はきれいに見えますが、アプリを強制終了して再度アプリケーションを実行すると、画像は2倍のサイズに拡大されます。画質。

画像を 1.0 にスケーリングすると、画像は拡大されませんが、画質は非常に悪くなります。

問題はどこにあると思いますか? 問題はレイアウトマネージャーにあります。

私が試し たこと NSLayoutManager をサブクラス化し、 - (void)drawGlyphsForGlyphRange:(NSRange)glyphsToShow atPoint:(CGPoint)originをオーバーライド しようとしました。アプリケーションの新しいセッションを実行すると、添付ファイルのサイズが倍増します。添付ファイルのサイズを確認してサイズを変更すると、再びラグが発生し始めます。私はかなりの時間からこの問題に悩まされています。どんな提案でも大歓迎です。ここに画像の説明を入力 ここに画像の説明を入力

0 投票する
2 に答える
534 参照

ios - iOS 7 AutoLayout を使用して UITextView を自動サイズ変更すると、改行がランダムに発生する

UITextViewコンテンツに合わせて自動的にサイズ変更されるシンプルなものが欲しいです。

AutoLayout を使用すると、これは非常に簡単です。UITextViewビューに を追加し、2 つの制約を設定してUITextViewを左上隅に固定し、スクロールを無効にします。それだけです。

IB セットアップ

予想される動作は、文字を入力するたびに緑色のテキスト ビューのフレームのサイズが変更されることです。しかし、これは部分的にしか機能しません: 一部のテキストでは、テキスト ビューは、現在の行の末尾に新しい文字を追加するだけでなく、2 行にわたってレンダリングすることを決定します。

UITextView でのテキスト レンダリングの例

これは新しい TextKit フレームワークに関連していると推測しています。NSLayoutManagerNSTextContainerのプロパティを操作して、この動作を制御しようとしましたが、役に立ちませんでした。

また、テキスト ビューの幅を「ハードコーディング」すると (たとえば、幅の制約を使用して)、文字は行末に正しく追加されますが、テキスト ビューの水平方向の自動サイズ変更プロパティが失われることにも注意してください。

UITextView改行したくないことをにどのように示すことができますか?

編集:さらにテストした後、バグは 32 ビット アーチにのみ表示されるようです。

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

ios - バックグラウンドスレッドでNSLayoutManagerを安全に使用できますか?

iOSのドキュメントには次のように書かれていますが:

NLayoutManager、NSTextStorage、および NSTextContainer は、アプリが単一のスレッドからのアクセスを保証している限り、サブスレッドからアクセスできます。

私は時々この例外に遭遇しました:

キャッチされていない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています。理由: 'メイン スレッドでのみ実行してください!'

バックトレースは次のとおりです。

注意すべきことの 1 つは、 myNLayoutManagerUITextView. UITextViewバックグラウンド スレッドでテキスト レイアウトを行うために使用される通常の方法と考えることができます。

つまり、ドキュメントの内容に反してNLayoutManager、単一のバックグラウンド スレッドにアタッチされている場合、安全に使用できないということUITextViewですか?

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

ios - TextKit と VoiceOver

私は iOS7 のデイバイデイ マルチページ TextKit チュートリアルに従っていましたが、アクセシビリティの問題に遭遇しました。チュートリアルのコードは次のとおりです: iOS7 Day-by-Day

問題は、各テキスト ビュー (列ごとに 1 つ、「ページ」ごとに 2 つ) に文字列全体が含まれているように見え、VoiceOver が有効になっていると、列がフォーカスされるたびに、テキストが最初から読み上げられることです。列に実際に表示されているテキストを読み取る代わりに、文字列を最後まで読み上げます。

テキストビュー/列は、新しい iOS7 メソッドを使用して作成されます

UITextView *textView = [[UITextView alloc] initWithFrame:textViewFrame textContainer:textContainer];

各列に表示されているテキストのみを VoiceOver で読み上げるにはどうすればよいですか?

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

ios - タブストップの前のテキストを右揃え、タブストップの後ろを左揃えにする

Text Kit を使用して、自分のアプリでカスタム テキストをレイアウトしています。適切に配置された列挙子を使用して、見栄えの良いリストを作成したいと考えています。テキストを次のようにする必要があります。

望ましい列挙スタイル

ピンクの線は目的の効果の一部ではありませんが、列挙子の配置方法を強調するためのものです (つまり、列挙子を右揃えにする必要がありますが、左側のテキストは左揃えにする必要があります)。

私はリスト スタイルを実装してこの要件を満たしています (現在、列挙子は左揃えになっています)。これを行うには、列挙子を文字列として追加し、その後にタブ文字 ( \t) を追加し、カスタム タブ ストップ ( NSTextTab) を目的の位置に追加しますNSParagraphStyle。以降の行は、headIndentを と同等の位置に設定することによってインデントされますNSTextTab

必要に応じて列挙子を整列させる方法について何か考えはありますか?

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

ios - ストーリーボードでの TextKit の使用

次のようなUITextViewのストーリーボードに がUINavigationControllerあります。

ここに画像の説明を入力

最上部のテキストがナビゲーション バーの下に隠れないようにするための自動レイアウト制約と、左、右、および下の制約があります。

カスタムNSTextStorageサブクラスを使用する必要がありますが、UITextView手動でインスタンス化してビューに挿入する必要があることを理解しています。私の質問は、これらの制約をコードでどのように模倣するかです。

UITextViewを初期化するために書いたコードは次のとおりです。

余談ですが、ストーリーボードでカスタムUITextStorageサブクラスを使用する方法があれば、これを回避できますがUITextView、これは不可能だと誤解していますか?

0 投票する
2 に答える
1823 参照

ios - NSTextAttachment カスタム ビュー

NSTextAttachmentiOS で を表示する場所にカスタム ビューを表示することはできますか? カスタムのテキスト ストレージとレイアウト マネージャーのサブクラスがありますが、実際にサブビューを追加するコードをどこに配置すればよいかわかりません。

(これが必要な理由は、インラインの数式編集をサポートするためです。ユーザーが数式を入力できるようにするカスタム テキスト フィールド クラスがあり、このビューを別のテキスト ビューの本文内に追加したいと考えています。)

私はこのチュートリアルを見てきましたが、それは良い出発点のように思えますが、テキスト添付ファイルが実際に描画される場所をカバーしていません. 具体的には、デフォルトのテキスト添付アイコンの代わりにカスタム ビューを追加するには、どのメソッドをオーバーライドする必要がありますか?

私がやりたいことが可能かどうか、またはこれが間違っているかどうか教えてください。ご協力いただきありがとうございます!