Подтвердить что ты не робот

NSView эквивалент UIView Clip Subviews?

Есть ли способ отключить отсечение подпунктов NSView? В UIView есть флажок "подзаголовок клипа" и свойство clipToBounds, но я не могу найти ничего подобного в Cocoa.

Вот мой сценарий: у меня есть эта серая точка, которую вы можете перетащить на экран:

Когда пользователь перетаскивает точку, я хочу показать стрелки вверх и вниз, которые у меня есть в фоновом режиме. Стрелка вверх находится за пределами NSView, удерживая точку и стрелку.

4b9b3361

Ответ 1

Вы можете использовать метод [NSView frameForAlignmentRect:]. Он определяет кадр, который используется для макета, основанного на ограничениях. Фактический кадр может быть намного больше, чтобы отображать стрелки при перемещении вида.

Cocoa использует эту функцию для компенсации теней или других частей представлений, которые не "подсчитываются" как фактический кадр элемента управления.

Из документации:

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