Можно ли получить прямоугольник содержимого NSTabViewItem с его панелью вкладок? - PullRequest
0 голосов
/ 27 мая 2019

Есть ли способ получить прямоугольник содержимого NSTabViewItem в строке NSTabView?

Свойство view - это просто представление, которое отображается, когда элемент активен.

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

Я бы хотел выровнять NSPopover точно под конкретным NSTabViewItem, но для этого мне нужно его прямоугольник с содержимым.

1 Ответ

0 голосов
/ 31 мая 2019

Не напрямую.Не существует типичного API для получения фрейма фактических сегментов элемента управления вкладкой.Вы можете сделать это примерно, если вы поменяете местами переключатель табуляции на NSSegmentedControl, оценив кадр по ширине каждого сегмента, но до сих пор нет явного способа получить фактический кадр данного сегмента (до того момента, пока этот сегмент не будет нарисованthe NSSegmentedCell).

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

NSTabViewItem по какой-то причине не соответствует NSAccessibility, но вы можете использовать устаревшие устаревшие API:

[tabViewItem accessibilityAttributeValue:NSAccessibilityPositionAttribute];
[tabViewItem accessibilityAttributeValue:NSAccessibilitySizeAttribute];

Они даютВы координируете в экран пробел, поэтому вам необходимо преобразовать их в окно (convertRectFromScreen) и в собственный кадр представления вкладки (convertRect: fromView :).Утомительно, но выполнимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...