Как удалить выбранную/выделенную строку из поля NSSearchField? (Быстро)

#swift

Вопрос:

Я пытаюсь удалить выбранную/выделенную строку из поля поиска.

введите описание изображения здесь

На прикрепленной картинке я пытаюсь удалить слово удалено. До сих пор это мой прогресс:

 if let selectedTextStartIndex = searchField.currentEditor()?.selectedRange.lowerBound,   let selectedTextLength = searchField.currentEditor()?.selectedRange.length,   let selectedTextRange = searchField.currentEditor()?.selectedRange{  if let selectedText = searchField.currentEditor(with: selectedTextRange){  print(selectedText) //deleted  print(selectedTextStartIndex) //15  print(selectedTextRange) //7  } }  extension String {  func substring(with nsrange: NSRange) -gt; Substring? {  guard let range = Range(nsrange, in: self) else { return nil }  return self[range]  } }  

Я не уверен, как с этим поступить. Кроме того, есть ли более простой способ сделать это? Я ищу код, который можно повторно использовать и в любой другой строке.

Редактировать:

введите описание изображения здесь

В этом случае я хочу удалить только первое удаленное.

Комментарии:

1. Почему бы просто не сделать: if let selectedRange = searchField.currentEditor().selectedRange { searchField.currentEditor().text = searchField.currentEditor().replaceSubrange(selectedRange, with: "") } ?

Ответ №1:

Здесь есть removeSubrange метод, который хорошо бы сработал:

 if let string = searchField?.currentEditor()?.string,  let range = searchField?.currentEditor()?.selectedRange,  let strRange = Rangelt;String.Indexgt;(range, in: string) {  searchField?.currentEditor()?.string.removeSubrange(strRange) }  

Комментарии:

1. Это ответ на ваш вопрос?

2. Да, так оно и было. Спасибо 🙂