問題タブ [uiviewrepresentable]

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

swift - attributedText 値の変更によって lineSpacing が追加されると、TextView UIViewRepresentable が UndoManager をリセットする

ここで説明されているように、TextView UIViewRepresentable を使用しています https://www.appcoda.com/swiftui-textview-uiviewrepresentable/

行間隔に関する1つの問題を除けば、期待どおりに機能しています。SwiftUI の lineSpacing 修飾子は効果がないようです。そのため、UIViewRepresentable に以下を追加して回避しました func updateUIView(_ uiView: UITextView, context: Context)

これは、 UITextView の行間を調整することでアドバイスされたとおりです。

したがって、完全な関数は次のようになります。

これで問題はありませんが、UndoManager がリセットされます。つまり、何らかの変更を加えるとすぐに、UndoManager は元に戻す (またはやり直す) ことができるものがあるとは認識しません。私の検索から、これは attributedText の値を変更することの一般的な副作用のようです。私のアプローチを微調整するか、 UndoManager の状態をリセットせずに lineSpacing を達成するまったく別の方法かどうか、利用可能な回避策があるかどうか疑問に思っています。

UPDATE : Asperi の推奨を試みましたが、結果はさまざまでした。

これは、TextView と対応するコーディネーターの完全なコードです。

self.text.wrappedValue = textView.text を textViewDidChange (上部にリンクされている AppCoda チュートリアルから取得したもの) に保持すると、推奨事項は機能しません。ただし、削除すると機能するように見えますが、ビューが更新されるたびに、セッションの開始時にテキストが自動的に元の状態にリセットされるという他の問題があります。たとえば、別のビューに切り替えようとした場合などです。アプリで、そうする前にテキストがリセットされるのを確認できました。または、たとえば、TextView の不透明度を下げる UI を開いたときに確認できました。

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

swift - UIViewRepresentable の Coordinator で PDFView 通知を検出することは可能ですか?

UIViewRepresentable を使用して PDFView を実装する方法を理解するのは非常に困難です。

SwiftUI -> UIKit から単純なバインディングを介して変数を取得できることを理解しています。

Coordinator を使用して PDFViewPageChanged などの PDFView 通知を検出し、Binding でデータを返す必要があることを理解しています。

Coordinator を使用して通知を受け取る方法の例が見つかりません。どんな助けでも大歓迎です。

ありがとう

編集

私が試したこと - 残念ながら、通知を受け取ることはありません