Программно создать NSButton и установить пользовательский NSButtonCell

Ладно, похоже, все должно быть очень просто, но я работаю с iOS и, должно быть, мне не хватает чего-то очень очевидного. Так что у меня есть собственный подкласс NSButtonCell. Если я создаю NSButton в IB и назначаю NSButtonCell в IB, это не проблема.

Однако мне нужно программно создать эту кнопку. Я посмотрел несколько примеров и получил следующее в awakeFromNib, однако он создает обычную кнопку с моей ячейкой пользовательской кнопки внизу (я могу сказать, когда нажимаю на кнопку).

NSButton* button = [[NSButton alloc] initWithFrame:NSMakeRect(100, 100, 60, 30)];
CT_CaptureButtonCell* captureCell = [[CT_CaptureButtonCell alloc] init];
[button setCell:captureCell];
[captureCell release];
[self.view addSubview:button];

Так какую же глупость я упускаю / не понимаю? Благодарю.

1 ответ

Если вы посмотрите на документацию для " setCell: ", это заявляет:

обсуждение

Используйте этот метод с большой осторожностью, поскольку он может нанести непоправимый ущерб поврежденному контролю; в частности, вы должны использовать этот метод только в инициализаторах для подклассов NSControl.

То, как я это читаю, это то, что ты должен называть свое " setCell" изнутри метода init для подкласса" NSButton Msgstr "Другими словами, напишите свой собственный подкласс NSButton (например," ICButton ", для InfalibleCoinage), а затем набить" setCell "вызовите метод init там.

И пока мы находимся на этой теме, какова общая картина того, с чем вы точно пытаетесь достичь " CT_CaptureButtonCell "и вы можете сделать это без использования пользовательской кнопки ячейки?

Другие вопросы по тегам