Курсор в самом начале первой строки в редакторе Draft.js
У меня есть onUpArrow
обработчик, который должен проверить, находится ли курсор в самом начале первой строки в редакторе Draft.js. Редактор может содержать несколько строк / блоков.
я нашел это SelectionState
такие методы, как getAnchorOffset()
а также getStartOffset()
можете сказать мне, что курсор находится в начале строки, возвращая 0
, но это значение возвращается в начале любой строки / блока, а не только первой в редакторе.
Эта проблема ссылается на "получить начало или конец документа или получить точную позицию курсора", но, похоже, это не вошло в источник черновика.
Кто-нибудь знает способ определить, находится ли курсор в самом начале содержимого редактора?
2 ответа
На основании вашего чека, и это editorState.getCurrentContent().getBlockMap().first().getKey() === selectionState.getAnchor/FocusKey()
Вот пример того, как я использую стандартную функцию handleKeyCommand, чтобы определить, нахожусь ли я в начале первой строки редактора DraftJS:
handleKeyCommand(command, editorState) {
const selectionState = editorState.getSelection()
const firstline = (editorState.getCurrentContent().getBlockMap().first().getKey() == selectionState.getFocusKey())
const startofline = (selectionState.getAnchorOffset() == 0)
if (firstline && startofline) {
// Your caret is at the start of the first line of your DraftJS editor.
}
}