你是否可以在UITextView中以编程方式接受拼写更正?

9

我有一个按钮,可以将字符插入到UITextView中。 我希望这个按钮的行为与空格键相同;按下它时,我希望待处理的自动纠正建议被接受。

这可行吗? 如果可以,怎么做? 谢谢!

3个回答

8

我刚刚发现,可以使用以下方法代替原来的做法(可以避免影响我的动画):

  [messageField reloadInputViews];

运作得非常好。

@mahboudz 我认为问题的情况是... 为什么要踩?? - agfa555
原帖没有提到inputViewinputAccessoryView。你是不是假设原帖中的“button”是其中之一?实际上它并不一定是,这使得你的解决方案不完整。你可能需要在回答中反映这一点。 - mahboudz

6

没有与自动更正直接交互的API。然而,我不久前发现了一个小技巧:如果您重新签署响应器,当前显示的自动更正将被接受。因此,您可以尝试重新签署第一响应者,然后再次分配它:

[myTextView resignFirstResponder];
[myTextView becomeFirstResponder];

1
当您这样做时,用户界面是否会出现问题? - Alexsander Akers
1
没有,我用它没有遇到任何问题。 - memmons
太棒了,我将来可能会用到这个。 - Alexsander Akers
FYI:这会触发textViewDidEndEditing:和textViewShouldBeginEditing:的委托调用以及键盘通知。 - mahboudz

0

两种提出的解决方案都不能在iOS 14上正常工作,而且可能会导致旧设备上出现奇怪的动画效果。

然而,调用selectionWillChange和selectionDidChange可以解决问题:

[textView.inputDelegate selectionWillChange: textView];
[textView.inputDelegate selectionDidChange: textView];

这里有一个类似且更受欢迎的问题:当按下另一个按钮时执行当前UITextField自动更正建议


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接