NSTextField光标位置

时间:2018-12-17 04:50:52

标签: macos nstextfield nscontrol

是否有任何方法可以获取NSTextField中的当前光标位置?我只找到UITextField的答案,不适用于osx:

if let selectedRange = textField.selectedTextRange{
  let cursorPosition = textField.offset(from: textField.beginningOfDocument,to: selectedRange.start)
}

非常感谢!

2 个答案:

答案 0 :(得分:0)

我正在使用此代码段来查找 NSTextField 的光标位置:

let currentEditor = textField.currentEditor() as? NSTextView
let caretLocation = currentEditor?.selectedRanges.first?.rangeValue.location // Int

答案 1 :(得分:0)

  • 方案一(通过 NSViewController 获取):

    let location = (viewController.view.window?.firstResponder as? NSText)?.selectedRange.location
    
  • 解决方案 2(通过 NSTextField 获得):

    let location = textField.currentEditor()?.selectedRange.location