UITextView - InsertText不会自动更正或自动大写

时间:2014-06-09 18:24:31

标签: c# ios objective-c xamarin.ios uitextview

我在InputView上设置了自定义UITextView,并启用了自动更正和自动大小写功能。

我的自定义输入视图有一堆UIButtons,可在InsertText上调用UITextView。这适用于在当前光标位置插入文本。问题是调用InsertText时自动更正和自动大写不起作用。如果通过蓝牙键盘或标准键盘输入,一切正常。

我可以通过UITextView调用某些方法来使自动更正/自动大写无效吗? SetNeedsDisplay是我的第一次尝试,但没有效果。此外,我的应用可能可能是iOS 7及更高版本,因此使用较新的文本API时可以。

*注意:我使用的是MonoTouch(Xamarin.iOS),但欢迎使用Objective-C答案。

2 个答案:

答案 0 :(得分:1)

不是没有滚动你自己的自动更正系统。 iOS自动更正系统对开发人员来说是不透明的,只适用于键盘输入。无论何时在输入或文本视图中显式设置.text属性,您设置的值都将显示。

答案 1 :(得分:0)

好的,我找到了一种方法:

  • 实施您自己的NSTextStorage
  • 设置NSLayoutManagerNSTextContainer以协调您的NSTextStorageUITextView
  • 以编程方式修改NSTextStorage子类时,自动更正“只是工作”

我认为这是有效的,因为修改NSTextStorage会触发通知UITextView更新自动更正等内容的事件。它仅适用于iOS 7及更高版本。