Я столкнулся со странной проблемой, я создал подкласс NSWindowController вместе с xib (Swift). Во вновь созданном xib (окне) я добавил две метки, два текстовых поля и кнопку, были созданы выходы для текстовых полей, а также создано действие для кнопки. Когда я запускаю код и нажимаю кнопку, действие не вызывается. Я проверил владельца файлов и соединения, все в порядке и подключено. То же самое я сделал с Objective C, он отлично работает. Я не знаю, что пошло не так.
Щелчок nsbutton не вызывает метод действия - программирование какао с быстрым
comment
В раскадровке щелкните правой кнопкой мыши кнопку и посмотрите, есть ли несколько соединений. если есть, удалите один из них.
- person Kelvin Chong   schedule 17.03.2019
comment
В консоль что-нибудь записывается?
- person Willeke   schedule 17.03.2019
comment
@Kelvin, я использую xib, и у меня нет нескольких подключений.
- person kiran Kumar Katuru   schedule 18.03.2019
comment
@Willeke, в консоли ничего не регистрируется.
- person kiran Kumar Katuru   schedule 18.03.2019
comment
Можно ли изолировать проблему в небольшом тестовом проекте?
- person Willeke   schedule 18.03.2019
comment
Я получаю это сообщение в консоли: Demo-CocoaSwift[2676:477984] [по умолчанию] Невозможно загрузить исключения Info.plist (eGPUOverrides)
- person kiran Kumar Katuru   schedule 18.03.2019
comment
Можете ли вы поделиться скриншотом файла xib и действий кнопки (правый клик по кнопке)
- person mouseymaniac   schedule 21.03.2019
Ответы (1)
Я столкнулся с той же проблемой. Я добавил сильную ссылку в файле .h на подокно (также известное как NSWindowController), объявленное в главном окне, и проблема решена.
Поместите что-то вроде "@property (strong, nonatomic) NSWindowController *aboutWindowController;" между @interface и @end в вашем заголовочном файле.
Затем в файле реализации (.m) вызовите второе окно:
self.aboutWindowController = [[AboutWindow alloc] initWithWindowNibName:@"AboutWindow"]; [self.aboutWindowController showWindow:self];
Замените aboutWindowController переменной вашего собственного контроллера. Замените AboutWindow именем подкласса вашего оконного контроллера.
Вам просто нужна сильная ссылка из главного окна, чтобы второе окно работало правильно.
person
webtrick101
schedule
01.04.2020