問題タブ [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.
swift - キーボードのリターンキーが押されたときにUITextViewがフォントスタイルを覚えていない
ストーリーボードに UITextView があります (テキスト プロパティに属性があり、編集可能な属性が選択され、編集可能がチェックされています)。ユーザーがボタンを押すと、太字フォントを「アクティブ化」したい。したがって、そこからユーザーが入力するものはすべて太字にする必要があります。Return キーが押されたら、次の行に移動したいので、UITextView はすべてのテキストの属性を記憶する必要があります。問題は、リターン キーを押した後、すべての文字が太字に変わることです。
これが私がコードに持っているものです。
私が達成しようとしている別の例は、stackoverflow 編集効果です。「{}」アイコンを押すと、「コーディング可能モード」になります。キーボードでEnterキーを押すと、通常に戻ります。
regularText および boldText プロパティは、サイズ 14 のシステム フォントです。
ios - UILabel で属性付きの文字列を 1 つずつ出力する
文字列の特定の部分に tapGestureRecognizers をアタッチできるカスタム UILabel クラスがあります。今、UILabel のテキストをアニメーション化して、一度に 1 文字ずつ印刷しようとしています。私のコードは一度に 1 文字ずつ TextStorage に追加しているようですが、テキストはアニメーションなしで同時に表示されます。一度に 1 文字ずつ TextStorage に追加するのは間違った方法ですか? ありがとう
swift - Swift 4: ある NSViewController から別の NSViewController にデータを渡す際の問題
macOS アプリで、ユーザーがテキストを入力できるシート ポップアップを作成しようとしています。ユーザーがテキストを追加したら、[保存] をクリックしてシートを閉じ、前のページの NSTextView にテキストを追加します。私はこれの多くのバリエーションを試しましたが、正直なところ、2 つの ViewController 間でデータを渡す方法さえわかりません。iOSのみのように見えるPerformSegueを試しました。UserDefaults().string(forKey:"") に保存しようとしましたが、何も機能していないようです。最後に、他の ViewController クラスを参照し、そのクラスから関数を実行する方法を見つけましたが、機能していないようです。これが私がこれまでに持っているコードです(何かが欠けている場合は、関連するすべてのコードを追加しようとしました)。
これは、テキストを追加するビューに接続された ViewContoller です。
これは、ユーザーのテキストを取得しようとしている ViewController です。
saveNotesTemplate で print(notesTemplate!) を実行でき、NSTextView! から正しいテキストが表示されます。func updateCaseTemplate() に Break を設定すると、それに到達することはありません。どんな助けでも大歓迎です。私は本当にここで学ぼうとしており、これに対する解決策を見つけるためにできる限りのことをグーグルで検索しました。
最後に、これが完全に間違っていて、より良い方法がある場合はお知らせください。
ios - 内部に長いテキストを含む NSTextStorage。パフォーマンス
内部にNSTextStorage
長いテキストがあります (本で 500 ページ、現在のフォントのデバイスで 9000 ページ以上)。このテキストを textcontainers に次のように配布しています。
問題は、このすべてのコンテナなどを初期化するのに長い時間がかかることです.私はすでにコードを使用から変更するなどのいくつかの改善を行っています.
while lastRenderedGlyph < layoutManager!.numberOfGlyphs {
と
lastRenderedGlyph = NSMaxRange(layoutManager!.glyphRange(for: textContainer))
cz それははるかに遅く動作しています。
では、他にどのような改善を行うことができますか? iPhone 7 では初期化に約 7 秒、iPhone 5s では 20 秒以上かかります。
時間プロファイラーは、ほとんどの場合、insertTextContainer 関数 (addTextContainer) を取得していることを示しています。
助言がありますか?