Я не могу понять, как отключить отсечение подвью/подслоя, когда мой пользовательский вид определен в Interface Builder. Когда я создаю представление программным образом и выполняю настройку, найденную во многих вопросах здесь, в StackOverflow, он отлично работает для обоих подзаголовков, добавленных в представление, и подслоев, добавленных в view.layer. Эти вещи:Невозможно отключить обрезку экземпляров NSView, созданных в Interface Builder
((NSView*)containingWindow.contentView).wantsLayer = YES;
view.wantsLayer = YES;
view.layer.masksToBounds = NO;
После того, как это делается (в таком порядке), все прекрасно работает для представлений, которые создаются в коде. Если я делаю то же самое (или что-то еще, если на то пошло) для представлений, созданных в IB, я никуда не могу.
Я попытался с помощью пользовательского NSView, который определяет метод:
- (CALayer*)makeBackingLayer {
CALayer* layer = [CALayer layer];
layer.masksToBounds = NO;
return layer;
}
- (BOOL)wantsDefaultClipping {
return NO;
}
Не помогает. Я также попытался проверить флажок в разделе «Core Animation Layer» в представлении эффектов в IB. Это тоже не помогло. Наконец, я попытался отключить ограничения, на всякий случай это было ответственным. Не работает.
Любая помощь приветствуется. Одна вещь, которую я замечаю, заключается в том, что мой вид слоя поддержки «masksToBounds» начинается с NO, как я его устанавливал, но когда я регистрирую иерархию представлений позже, он стал ДА на том же самом представлении (подтвержденном его адресом памяти.)
Вы нашли ответ на этот вопрос? У меня похожие проблемы, хотя я не использую IB. –