如何获取光标在指定窗口内的具体位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取光标在指定窗口内的具体位置相关的知识,希望对你有一定的参考价值。

参考技术A  可以用GetCursorPos函数获取光标位置;
  函数功能:该函数检取光标的位置,以屏幕坐标表示。
  函数原型:BOOL GetCursorPos(LPPOINT lpPoint);
  参数:
  IpPoint:POINT结构指针,该结构接收光标的屏幕坐标。
  Visual Basic 6.0 函数声明:
  [Public/Private] Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
  使用时要先定义一个数据结构:
  Public Type POINTAPI
  x As Long
  y As Long
  End Type

如何更改 UITextView 内的起始光标位置

【中文标题】如何更改 UITextView 内的起始光标位置【英文标题】:How to change the starting cursor position inside UITextView 【发布时间】:2015-06-20 09:27:54 【问题描述】:

我有一个 uitextview,它成为 viewload 的第一响应者。但我只想将 uitextview 光标的位置更改为 x 中某个位置的前 2 行。

【问题讨论】:

来自谷歌的 uitextview 的主要委托方法,但没有工作 @d4Rk 你能给我们看一些代码吗,什么不起作用?或者你期望它做什么。 我只想像 facebook 屏幕一样在 android 中更新状态 【参考方案1】:

也许您可以使用 UITextKit (a very good tutorial)。

例如,要使用圆形文本,您可以使用以下内容:

UIBezierPath* exclusionPath = [UIBezierPath bezierPathWithOvalInRect:yourTextView.bounds];
exclusionPath = [exclusionPath bezierPathByReversingPath];
yourTextView.textContainer.exclusionPaths = @[exclusionPath];

【讨论】:

【参考方案2】:

您是否尝试过以下解决方案?

在 UITextField 中控制光标位置很复杂,因为输入框和计算位置涉及很多抽象。但是,这当然是可能的。可以使用成员函数setSelectedTextRange

[input setSelectedTextRange:[input textRangeFromPosition:start toPosition:end]];

这是一个函数,它接受一个范围并选择该范围内的文本。如果您只想将光标放在某个索引处,只需使用长度为 0 的范围:

+ (void)selectTextForInput:(UITextField *)input atRange:(NSRange)range 
    UITextPosition *start = [input positionFromPosition:[input beginningOfDocument] 
                                                 offset:range.location];
    UITextPosition *end = [input positionFromPosition:start
                                               offset:range.length];
    [input setSelectedTextRange:[input textRangeFromPosition:start toPosition:end]];

例如,将光标放在 UITextField 中的idx input

    [Helpers selectTextForInput:input 
                        atRange:NSMakeRange(idx, 0)];

来源:https://***.com/a/11532718/914111

由于有些忙,没有测试,所以请告诉我们它是否工作(可能在 IOS8.0 中存在问题)

【讨论】:

以上是关于如何获取光标在指定窗口内的具体位置的主要内容,如果未能解决你的问题,请参考以下文章

重要重要如何在div是contentEditable=true的里面获取光标的位置,并在光标位置处插入内容。焦点位置插入指定内容

如何把光标设置在edit中的指定位置

c# 动态获取当前屏幕中光标所在位置

我们如何获得相对于窗口形式的位置?

word中如何自动获取指定节的页数

获取指定窗口内的文本