【问题标题】:Insert string at location Objective-C在 Objective-C 位置插入字符串
【发布时间】:2012-06-30 16:37:50
【问题描述】:

我正在制作一个包含“热键”的应用程序,当您点击热键时,它应该在您输入的位置插入一个字符。 我正在使用 UITextView 进行编辑。

我想要做的是在蓝色光标之后插入文本。
这可能吗?

【问题讨论】:

  • 你用什么类来保存/编辑文本?
  • 查看编辑...UITextView 启用编辑

标签: iphone objective-c nsstring


【解决方案1】:

您想使用UITextViewinsertText: 方法,该方法在其实现UIKeyInput 协议(这是UITextInput 的超协议,UITextView 实现)中声明。

【讨论】:

  • 关于如何做到这一点的一点点?
  • 您只需调用insertText: 并使用您要在UITextView 实例中插入的字符;我认为没有什么比这更重要的了。
  • 一行?更好,更容易。
【解决方案2】:

你可以通过使用获取光标的位置

int position = txtView.selectedRange.location;

然后你需要从文本视图中获取字符串并插入你自己的字符串

NSMutableString *str = [txtView.text mutableCopy];
[str insertString:@"YourString" atIndex:position];
txtView.text = str;

这可能会滚动文本视图并丢失当前光标,如果您不想丢失它,则需要继承 UITextView 并在 drawRect 内做一些工作

【讨论】:

  • 子类?如果我要求太多,您可以指向我的文档链接。
  • 这里有一个演示如何做到这一点miphol.com/muse/2009/05/subclassing-uitextview.html
  • 以防万一。不希望光标结束,我添加了 2 行代码,将其设置回旧位置: NSRange noteRange = [noteView selectedRange]; /* 其他代码 */ [noteView setSelectedRange: noteRange];
猜你喜欢
  • 2019-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-01
  • 2016-04-21
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多