UITextField在selectedTextRange上的SigAbrts

时间:2011-11-03 22:47:42

标签: objective-c uitextfield selectedtext

我正在尝试在文本字段中查找和删除所选文本,但每次都会发出SIGABRT。当我尝试检索selectedTextRange时,我不断收到NSInvalidArgumentException。实际上我测试了它,并且与所选文本有关的每个函数似乎都破坏了应用程序。

[mTextField selectedTextRange];

由于某种原因,即使这行代码本身也是一个无法识别的选择器。我已经仔细检查过我没有使用垃圾数据或任何东西,我可以先获取文本,然后获取所选文本,然后打破它。

3 个答案:

答案 0 :(得分:3)

selectedTextRange只能在iOS5 +上使用。

答案 1 :(得分:1)

由于您使用nstextfield标记了问题,我假设您使用的是NSTextField(Mac OS X),而不是UITextField(iOS)。问题是NSTextField不支持selectedTextRange消息。 (UITextField确实支持它。)我认为无法从NSTextField获得所选范围。

如果您切换为使用NSTextView,则可以向其发送selectedRanges消息。

答案 2 :(得分:1)

我认真地认为你不能通过使用UITextField实现这一目标。

但是我想你可以通过实现UITextViewDelegate来做到这一点。您可以在此方法中使用selectedRange属性。

- (void)textViewDidChangeSelection:(UITextView *)textView

顺便说一下,你的问题可能与这个问题有关:

Can I select a specific block of text in a UITextField?

请查看..