Open1

WWDC24: Writing Toolsの導入

hirothingshirothings

UITextViewに自動で表示される

  • 校正
  • リライト
  • 要約
  • 要点まとめ
  • リストや表に変換

Writing Toolsの変更は全てインラインで確認が可能

UITextView, NSTextView, WKWebViewを使用している場合は、そのまま動作する
TextKit2を利用しないと部分的な機能しか使えない点に注意

Writing Tools使用中のデリゲートメソッド

func textViewWritingToolsWillBegin(_ textView: UITextView) {
    // Take necessary steps to prepare. For example, disable iCloud sync.
}

func textViewWritingToolsDidEnd(_ textView: UITextView) {
    // Take necessary steps to recover. For example, reenable iCloud sync.
}

if !textView.isWritingToolsActive {
    // Do work that needs to be avoided when Writing Tools is interacting with text view
    // For example, in the textViewDidChange callback, app may want to avoid certain things
       when Writing Tools is active
}

制御したい場合はオプトアウトが可能
WKWebViewはデフォルトで .limited

textView.writingToolsBehavior = .limited
textView.writingToolsBehavior = .none

Rich Text, Tableの使用などを制限可能

textView.writingToolsAllowedInputOptions = [.plainText]
textView.writingToolsAllowedInputOptions = [.plainText, .richText, .table]

NSViewなどでCustomTextViewを作成する場合も無料でWriting Toolsをサポートすることが可能

SwiftUIでは使えない..
動画で完全に触れられていない(UIKit, AppKitのみ)
grepしてもAPIが見当たらない
https://developer.apple.com/documentation/SwiftUI

Writing Toolsの導入
https://www.youtube.com/watch?v=79PkqsA_zk8
公式ドキュメント
https://developer.apple.com/videos/play/wwdc2024/10168/