gpt4 book ai didi

ios - 键盘扩展如何知道文档代理已更改?

转载 作者:可可西里 更新时间:2023-11-01 05:34:08 25 4
gpt4 key购买 nike

iOS 上的键盘扩展是 UIInputViewController 类的子类,并具有 textDocumentProxy 属性以与底层文档进行交互。 textDocumentProxy 对象公开了文档的一些重要特征,例如自动大写类型。问题是,键盘扩展如何知道基础文档何时更改?

例如,当我在消息应用程序中点击撰写新消息时,“收件人”字段使用与消息正文输入框不同的输入特征。但由于将焦点从一个字段切换到另一个字段时键盘不会消失,因此文本文档代理对象会即时更改。键盘扩展能注意到这样的变化吗?

我已经尝试通过 KVO 查看 textDocumentProxy[[self textDocumentProxy] autocapitalizationType] 属性,但这不起作用。使用计时器检查 autocapitalizationType 属性会发现更改,但显然我想避免轮询解决方案。

最佳答案

我的 UIInputViewController 支持 UITextInput 协议(protocol),它有一个 textDidChange 方法。在 textDidChange 中,我将 self.textDocumentProxy 与我自己的 self.currentTextProxy 属性进行比较。当两者不同时,我更新 self.currentTextProxy,然后根据 self.textDocumentProxyUITextInputTraits 刷新我的 GUI。

关于ios - 键盘扩展如何知道文档代理已更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26882895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com