我在InputView
上设置了自定义UITextView
,并启用了自动更正和自动大小写功能。
我的自定义输入视图有一堆UIButtons
,可在InsertText
上调用UITextView
。这适用于在当前光标位置插入文本。问题是调用InsertText
时自动更正和自动大写不起作用。如果通过蓝牙键盘或标准键盘输入,一切正常。
我可以通过UITextView
调用某些方法来使自动更正/自动大写无效吗? SetNeedsDisplay
是我的第一次尝试,但没有效果。此外,我的应用可能可能是iOS 7及更高版本,因此使用较新的文本API时可以。
*注意:我使用的是MonoTouch(Xamarin.iOS),但欢迎使用Objective-C答案。
答案 0 :(得分:1)
不是没有滚动你自己的自动更正系统。 iOS自动更正系统对开发人员来说是不透明的,只适用于键盘输入。无论何时在输入或文本视图中显式设置.text
属性,您设置的值都将显示。
答案 1 :(得分:0)
好的,我找到了一种方法:
NSTextStorage
NSLayoutManager
和NSTextContainer
以协调您的NSTextStorage
与UITextView
NSTextStorage
子类时,自动更正“只是工作”我认为这是有效的,因为修改NSTextStorage
会触发通知UITextView
更新自动更正等内容的事件。它仅适用于iOS 7及更高版本。