Я создаю небольшой инструмент, построенный на проекте «Инструмент командной строки». Все работает хорошо, кроме Курсор в этом инструменте.
Вот код запуска:
int main(int argc, const char * argv[]) {
NSApplication * app = [NSApplication sharedApplication];
MyDelegate * delegate = [[MyDelegate alloc] init];
app.delegate = delegate;
[app run];
return 0;
}
А в MyDelegate я создаю окно, вид и т. Д. c. Однако я переопределяю функцию resetCursorRects
в представлении, но ничего не произошло.
Если тот же код выполняется в проекте приложения, все будет хорошо.
Все, что я пробовал, включает в себя:
- Создание подкласса из NSApplication и переопределение функции запуска для обработки события uesr.
- Создание NSTrackingArea в представлении для обновления курсора.
- Выполнение селектора (запустить) на mainThread и дождаться завершения.
Однако они вообще не работали.
Теперь единственная причина, по которой я догадался - это функция NSApplicationMain(argc, argv)
не равно [app run]
.
Какая разница? Может ли кто-нибудь мне помочь?
PS: Если я использую NSApplicationMain(argc, argv)
, xcode выдаст мне ошибку, что у меня должен быть комплект и Info.plist. Я не хочу создавать приложение, потому что оно жирное.