xcode — программа NSTouchBar с переполнением стека

Я хотел бы использовать c ++ для создания приложения, которое использует новую сенсорную панель MacBook Pro. Однако я не могу найти действительно хорошие ресурсы. И у Apple нет документов по использованию c ++ для программирования сенсорной панели.

я нашел этот статья на C ++ и сенсорная панель, однако я не могу найти ни один из заголовочных файлов для скрипта GLFW/glfw3.h а также GLFW/glfw3native.h, Они оба кажутся важными для работы скрипта.

Даже если скрипт вышеупомянутой статьи работает, нет официальный Документы для программирования сенсорной панели с C ++ (что я знаю). Я думаю, что это важно, учитывая тот факт, что многие, если не большинство приложений, написаны на c / c ++.

Заранее спасибо за помощь!

3

Решение

Таким образом, статья, на которую вы ссылаетесь, в принципе не нуждается в GLFW/glfw3.h а также GLFW/glfw3native.h файлы, если вы не используете GLFW.

Какую структуру пользовательского интерфейса вы используете для своего приложения C ++?

Если он все еще не использует Carbon, на самом низком уровне фреймворк будет создавать NSWindows, чтобы фактически иметь окна в пользовательском интерфейсе. Вам необходимо получить доступ к NSWindow, используемому вашей средой для размещения в нем пользовательского интерфейса. Если он все еще использует Carbon, я думаю, вы, вероятно, не сможете этого добиться.

Если среда предоставляет некоторый механизм для получения собственного окна платформы (которое будет NSWindow), вы бы заменили вызов автора на glfwGetCocoaWindow(window); с правильным вызовом из ваших рамок.

Если инфраструктура не предоставляет доступ к NSWindow, вам нужно будет использовать код, закомментированный в нижней части статьи, чтобы прикрепить вашу сенсорную панель к окнам в вашем приложении.

Обратите внимание, что весь этот код является кодом Obj-C; вам понадобится хотя бы один .m или же .mm файл в вашем проекте, чтобы предоставить этот клейкий код Obj-C, чтобы получить доступ к сенсорной панели. По сути, этот код является C-вызываемой оболочкой для API-интерфейса Cocoa.

Также обратите внимание, что вам нужно будет расширить список кнопок и действий для всех различных вещей, которые вы хотите поместить на сенсорной панели. Вы можете добавить свой собственный API-интерфейс, чтобы создание панели инструментов выполнялось из C ++ и регистрировало действия, которые вызывают обратный вызов в вашем приложении C ++ для обработки событий.

В принципе, сенсорная панель недоступна ни на какой другой платформе, поэтому нет смысла пытаться избегать написания Obj-C для реализации сенсорной панели, так как этот код в любом случае будет работать только на macOS. Если вы используете .mm файлы для реализации Obj-C ++ для этого кода, вы все равно можете вызывать объекты C ++ из кода сенсорной панели.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]