Программно создать 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
"и вы можете сделать это без использования пользовательской кнопки ячейки?