У меня есть окно NSPopover
, в которое я хотел бы добавить поддержку тачпада. Мне удалось реализовать поддержку тачпада для стандартного NSWindow
, но в соответствии с той же процедурой для моего popover не возникает никаких элементов тачпада, отображаемых в симуляторе сенсорной панели xCode.Окна с сенсорной панелью и NSPopover
Я реализую makeTouchbar
и NSTouchBarDelegate
в NSViewController
, который представлен как NSPopover
. makeTouchBar
и вызываются функции делегата, но ничего не отображается на сенсорной панели (в приведенном ниже коде блоки блокируются как сенсорная панель, так и подсказка).
Я волнуюсь, что окна NSPopover не активируют тач-панель в качестве активного приложения, хотя у нее есть фокус клавиатуры. Как я могу показать элементы тачпада для окна NSPopover
?
//MARK: Touch bar
@available(OSX 10.12.1, *)
override func makeTouchBar() -> NSTouchBar? {
Swift.print("Touchbar.")
let touchBar = NSTouchBar()
touchBar.delegate = self
touchBar.customizationIdentifier = .touchBar
touchBar.defaultItemIdentifiers = [.tbHint, .colourC]
return touchBar
}
@available(OSX 10.12.1, *)
extension RememberViewController: NSTouchBarDelegate {
func touchBar(_ touchBar: NSTouchBar, makeItemForIdentifier identifier: NSTouchBarItemIdentifier) -> NSTouchBarItem? {
switch identifier{
case NSTouchBarItemIdentifier .tbHint:
Swift.print("hint")
let buttonView = NSCustomTouchBarItem(identifier: identifier)
let button = NSButton(title: "Hint", target: self, action: #selector(showHint))
buttonView.view = button
return buttonView
case NSTouchBarItemIdentifier .colourC:
let colorPicker: NSColorPickerTouchBarItem
colorPicker = NSColorPickerTouchBarItem.colorPicker(withIdentifier: identifier)
colorPicker.customizationLabel = "Color Picker"
colorPicker.target = self
colorPicker.action = #selector(showHint)
return colorPicker
default:
return nil
}
}
}
Спасибо, но я считаю, что это более обходное решение, так как преобразование в лист - это совершенно другая модель UX. – RealCasually
Действительно, но это может помочь другим людям. Поскольку идея работает, она не заслуживает нисходящего ... – vomi