iphone - 如何计算UITextView中某个位置的NSString的NSRange

标签 iphone nsstring uitextview

当我点击 UITextView 中的某个位置时,我想检索该行显示的 NSString 的子字符串。

我有例如一个显示字符串的 UITextView,使用 16 行。当我点击位置 (200, 150) 时,我想要 UITextView 在该点击上显示的子字符串。

关于如何实现这一目标有什么建议吗?

最佳答案

如果我正确理解你的问题,这是一个可能的解决方案。在您的 View Controller 中将 IBOutlet 添加到 UITextView 并确保您的 View Controller 实现 UITextViewDelegate。在 InterfaceBuilder 中将 UITextView 连接到 FileOwner 时,请确保还将 UITextView 的委托(delegate)指向 FileOwner。

@interface StackOverFlowViewController : UIViewController<UITextViewDelegate> {

    IBOutlet UITextView *textView;
}
@end

然后在您的 UIViewController 实现文件中添加此 UITextViewDelegate 方法。

- (void)textViewDidChangeSelection:(UITextView *)aTextView {

  NSRange rangeOfSelection = textView.selectedRange;
  NSString *selectedText = [textView.text substringWithRange:rangeOfSelection];
  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Selection Changed" message:selectedText delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
  [alert show];
  [alert release];
}

然后,每次您在 UITextView 中进行选择时,都会调用此方法。使用UITextView的selectedRange属性来获取用户创建的NSRange。从那里您可以从 UITextView 获取文本并生成正确的子字符串。

我刚刚在textViewDidChangeSelection方法中添加了一个UIAlertView来显示子字符串

关于iphone - 如何计算UITextView中某个位置的NSString的NSRange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3482724/

相关文章:

iOS 7 - SplitViewController 详细 View - 自动布局 UITextView 键盘方向更改

iOS 键盘阻碍了 TextView 中的编辑文本

iphone - 翻转时如何恢复保存的变换

javascript - iphone/ipad 杂志框架、iScroll 或更新版本?

iphone - 如何从 obj-c 中的 NSString 调用类方法?

swift - Swift beta7 中的 NSString.sizeWithAttributes()

iphone - NSURLRequest 超时 IOS

iphone - 如何在 iPhone 上添加全屏 iAd?

objective-c - NSClassFromString 想法

swift - 如何从 Swift 3 中的 TextView 中删除查找和共享