【问题标题】:UITextField SigAbrts on selectedTextRangeUITextField SigAbrts on selectedTextRange
【发布时间】:2012-03-09 21:36:46
【问题描述】:

我正在尝试在文本字段中查找并删除选定的文本,但它每次都是 SIGABRT。当我尝试检索 selectedTextRange 时,我不断收到 NSInvalidArgumentException。事实上,我对其进行了测试,与所选文本有关的每个功能似乎都会破坏应用程序。

[mTextField selectedTextRange];

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

【问题讨论】:

    标签: objective-c uitextfield selectedtext


    【解决方案1】:

    selectedTextRange只能在iOS5+上使用。

    【讨论】:

    • 是的,我们在不久之后发现了这一点,在功能中添加这么晚似乎很愚蠢。
    【解决方案2】:

    由于您使用 nstextfield 标记了您的问题,我假设您使用的是 NSTextField (Mac OS X) 而不是 UITextField (iOS)。问题是NSTextField 不支持selectedTextRange 消息。 (UITextField 确实支持它。)我看不出有任何方法可以从 NSTextField 中获取所选范围。

    如果你改用NSTextView,你可以给它发送selectedRanges消息。

    【讨论】:

    • 抱歉打错了,它实际上是一个 UITextField。把我的前缀搞混了。
    【解决方案3】:

    我真的不认为你可以通过使用 UITextField 来实现。

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

    - (void)textViewDidChangeSelection:(UITextView *)textView
    

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

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

    去看看吧..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多