NSTextFinder в NSOutlineView показывает только представление Find - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть контурное представление, которое использует представление Find and Replace, полностью созданное в Interface Builder, которое прекрасно работает в Mojave, но в старых ОС (Yosemite является целью развертывания) ограничения сходят с ума. После десятков и десятков попыток я решаю исследовать другие пути. NSTextFinder выглядит великолепно, и на самом деле представление «Найти» выглядит неплохо ... но здесь проблема: появляется только представление «Найти», даже если я сказал показать «Заменить». Вот пример кода, воспроизводящего проблему:

class ViewController: NSViewController, NSTextFinderClient {
  @IBOutlet var outline :NSOutlineView! 
  var textFinder : NSTextFinder?

  override func viewDidLoad() {
    super.viewDidLoad()
    self.textFinder = NSTextFinder()
    self.outline.enclosingScrollView!.findBarPosition = .aboveContent
    self.textFinder?.findBarContainer = self.outline.enclosingScrollView
    self.textFinder?.client = self
    self.textFinder?.incrementalSearchingShouldDimContentView = true
  }

  @objc func performFindPanelAction(_ sender: Any) {
    //self.textFinder?.performAction(NSTextFinder.Action.showFindInterface)
    self.textFinder?.performAction(NSTextFinder.Action.showReplaceInterface)
  }
}

После этой первой попытки я не знаю, как подключить действия, но для начала было бы здорово узнать, почему не отображается представление «Заменить».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...