在TextEditor间切换光标触发NSXPCDecoder安全编码警告问题
SwiftUI双TextEditor切换光标触发NSSecureCoding警告
问题场景
输入中文后立即在两个TextEditor组件间切换光标时,会触发NSSecureCoding相关安全警告,运行环境为Xcode 16.4、macOS 15.3。
复现代码
import SwiftUI struct ContentView: View { @State private var text1 = "" @State private var text2 = "" var body: some View { HStack { TextEditor(text: $text1) TextEditor(text: $text2) } } }
警告信息(中文翻译)
*** -[NSXPCDecoder validateAllowedClass:forKey:]: NSSecureCoding允许的类列表包含[NSObject class],这会绕过安全机制,允许隐式解码任何Objective-C类。
请在解码时缩小允许类的范围,仅列出你预期解码的类,或使用比NSObject更具体的基类。
此问题在未来会变为错误。允许的类列表:{("'NSObject' (0x2009c9930) [/usr/lib]")}<decode: bad range for [%{public}@] got [offs:287 len:1400 within:0]>
临时处理建议
- 避免在中文输入未完成(候选框未确认)时快速切换TextEditor光标
- 升级至最新版本的Xcode或macOS,确认Apple是否已修复该框架层面问题
- 若需跟进问题进度,可向Apple官方提交反馈报告
内容的提问来源于stack exchange,提问作者Nick Value
相关产品推荐
相关产品推荐

