После загрузки пера с помощью NSViewController & # 8230; Как я могу получить доступ к NSButton в перо?
-
05-07-2019 - |
Вопрос
Я создал подкласс NSViewController с IBOutlets, подключенным к NSButton во вторичном кончике.
Я могу создать экземпляр NSViewController и применить представление в NSMenu - оно прекрасно работает - но как мне получить доступ к кнопке, чтобы изменить ее заголовок?
Так как NSViewController имеет IBOutlets, я предполагал, что сделаю это через контроллер.
//this part works great
NSViewController *viewController = [[toDoViewController alloc] initWithNibName:@"toDoView" bundle:nil];
NSView *newView = [viewController view];
newMenuItem.view = newView;
//this part not so much
[viewController [toDoButton setTitle:someStringHere]];
Есть ли какие-нибудь указатели на то, куда идти дальше?
Изменить, чтобы добавить: класс toDoViewController -
@interface toDoViewController : NSViewController {
IBOutlet NSButton *checkBoxButton;
IBOutlet NSButton *toDoButton;
}
@end
Решение
[viewController [toDoButton setTitle:someStringHere]];
Как сказали бы интерактивные художественные переводчики: «В этом слове отсутствует глагол. & # 8221;
У вас есть получатель ( viewController
) и полное выражение сообщения ( [toDoButton setTitle: & # 8230;]
) и скобки, но вы пропустили селектор. Таким образом, это недопустимое выражение сообщения.
Есть две возможности:
<Ол> setTitle:
, и вы забыли селектор. Я считаю это маловероятным, потому что setTitle:
NSButton ничего не возвращает. setTitle:
. Предполагая, что этот контроллер представления является экземпляром подкласса NSViewController, в который вы добавили свойство toDoButton
, используйте либо [[viewController toDoButton] setTitle: someStringHere]
, либо < code> [viewController.toDoButton setTitle: someStringHere] .