【问题标题】:UITextView UIResponderStandardEditActions Text Formatting Toggle StateUITextView UIResponderStandardEditActions 文本格式切换状态
【发布时间】:2012-10-13 16:57:52
【问题描述】:

如何确定UIResponderStandardEditActions 的当前状态以进行文本格式化?例如,如果我执行以下操作:

[textView toggleBoldface:nil];

如何查询 textView 以了解粗体状态现在是打开还是关闭?这仅适用于没有选择的光标(即范围长度为 0)。因此, enumerateAttribute 似乎不起作用。

谢谢。

【问题讨论】:

    标签: ios ios6 uitextview toggle uiresponder


    【解决方案1】:

    看起来 typingAttributes 属性(在 iOS 6 中可用)将记录将应用于用户键入的新文本的属性,即使选择长度为 0。因此揭示了诸如粗体之类的格式化选项的状态是。

    NSLog(@"textViewFormatting options: %@", [[self noteTextView] typingAttributes]);
    

    【讨论】:

      【解决方案2】:

      我在文档中没有找到任何有用的东西,但我想只要继承 UITextView 就足够简单了,在其上添加一个属性,如BOOL boldText,然后无论您调用[textView toggleBoldFace:nil];,也只需切换该属性.然后当您需要检查 textView 的状态时,只需检查 boldText 属性即可。

      【讨论】:

      • 嗨杰拉德。我很欣赏这个建议,但我认为它不会起作用,原因有几个。主要是虽然粗体是 BOOL,但您希望看到的状态可以在没有切换事件的情况下更改(即移动光标)。例如,我可能有 3 个粗体字。将光标放在任何这些单词的字母之间应返回粗体状态。如果我将光标放在第 4 个非粗体字的字母之间,它不应该返回粗体状态。所以在这里,没有切换事件来改变状态。只是将光标放在不同的地方应该会返回不同的结果。希望这是有道理的。
      • 我没有意识到除了切换之外你会改变状态。如果我想到一些有用的东西,我会回到这个。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      相关资源
      最近更新 更多