iphone - 在 UTextView 中一次移动一个单词

标签 iphone ipad uitextview text-cursor

我想创建一个按钮,一次移动一个单词在 UITextView 中的光标位置。从用户的角度来看,这与 Mac OS X 中的 Option-右箭头相同,定义为“转到插入点右侧的单词。”

我找到了几种同时提升角色的方法。您将如何修改它以一次移动一个单词?

- (IBAction)rightArrowButtonPressed:(id)sender
{
     myTextView.selectedRange = NSMakeRange(myTextView.selectedRange.location + 1, 0); 
}

感谢您的任何建议。

最佳答案

能够像这样实现它,

- (IBAction)nextWord {
    NSRange selectedRange = self.textView.selectedRange;
    NSInteger currentLocation = selectedRange.location + selectedRange.length;
    NSInteger textLength = [self.textView.text length];

    if ( currentLocation == textLength ) {
        return;
    }

    NSRange newRange = [self.textView.text rangeOfCharacterFromSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]
                                                           options:NSCaseInsensitiveSearch
                                                             range:NSMakeRange((currentLocation + 1), (textLength - 1 - currentLocation))];
    if ( newRange.location != NSNotFound ) {
        self.textView.selectedRange = NSMakeRange(newRange.location, 0);
    } else {
        self.textView.selectedRange = NSMakeRange(textLength, 0);
    }
}

- (IBAction)previousWord {
    NSRange selectedRange = self.textView.selectedRange;
    NSInteger currentLocation = selectedRange.location;

    if ( currentLocation == 0 ) {
        return;
    }

    NSRange newRange = [self.textView.text rangeOfCharacterFromSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]
                                                           options:NSBackwardsSearch
                                                             range:NSMakeRange(0, (currentLocation - 1))];
    if ( newRange.location != NSNotFound ) {
        self.textView.selectedRange = NSMakeRange((newRange.location + 1), 0);
    } else {
        self.textView.selectedRange = NSMakeRange(0, 0);
    }

}

关于iphone - 在 UTextView 中一次移动一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6273323/

相关文章:

iphone - 'UITableView' 的 no @interface 声明选择器 'initWithStyle :reuseIdentifiers

iphone - 函数调用参数是未初始化的值?

ios - 在显示键盘时检测 UITextView 中属性文本的点击

ios - 从文本字段/ TextView 中获取文本

ios - 带有 UIButton 的 UILabel

ios - 调用方法时无法推断通用参数 'T'

iphone - 无法关闭模态视图 Controller

iphone - ViewDidLoad() 中的调用方法

iphone - 如何从 JSON 中获取的字典中获取信息 - Objective-C/IOS/xCode

objective-c - 预处理器-IF 不起作用