Как сделать так, чтобы курсоры изменения размера отображались на плавающей неактивирующей панели?

У меня есть плавающий NSPanel, который не активируется, т.е. его styleMask содержит флаг NSNonactivatingPanelMask. Поскольку эта панель никогда не становится активной, система не отображает обычные курсоры изменения размера при приближении к одному из краев панели.

Есть ли способ заставить эти курсоры изменения размера отображаться на неактивирующей панели? Например. системная панель шрифтов как-то справляется с этим.


person Florian Kugler    schedule 11.02.2014    source источник


Ответы (1)


[NSFontPanel sharedFontPanel].styleMask == (NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask | NSUtilityWindowMask). Однако он показывает индикаторы изменения размера, даже если вы добавите NSNonactivatingPanelMask.

Когда вы устанавливаете [NSFontPanel sharedFontPanel].hidesOnDeactivate = NO и активируете другое приложение, индикаторы изменения размера перестают работать. Это сделано специально, потому что даже обычные неактивные окна не могут быть изменены.

Так что, возможно, вы пытаетесь добавить индикаторы изменения размера, когда приложение, владеющее панелью, неактивно. Просто мысль.

person Vadim    schedule 11.02.2014
comment
Хорошо, что приложение действительно неактивно. Я предполагаю, что нет способа заставить систему отображать курсоры изменения размера для плавающего окна, пока приложение неактивно...? :) - person Florian Kugler; 11.02.2014
comment
Я предполагаю, что нет, вам следует настроить дизайн и взаимодействие с пользователем или реализовать индикаторы изменения размера с помощью NSTrackingArea. Это точно возможно :) - person Vadim; 11.02.2014