Кнопки, созданные с помощью standardWindowButton NSWindow, не реагируют и не перерисовываются правильно на настраиваемом NSWindow - PullRequest
0 голосов
/ 06 мая 2020

У меня есть NSWindow (главное окно), созданное из файла xib, и в этом окне у меня нет никаких проблем.

Когда нажимается кнопка, я создаю новый NSWindowController, NSWindow и NSView программно без xib s. Я скрываю предыдущее главное окно и использую это маленькое настраиваемое окно. В этом окне я добавляю 3 кнопки:

NSButton *closeButton = [NSWindow standardWindowButton:NSWindowCloseButton forStyleMask:NSBorderlessWindowMask];
closeButton.frame = NSMakeRect(6, 43, closeButton.bounds.size.width, closeButton.bounds.size.height);
[myWindowController.window.contentView addSubview:closeButton];

Они отлично работают, если я нажимаю на них. Итак, проблема (или выглядит) cosmeti c.

Ожидаемая вещь:

По умолчанию это должно выглядеть так. DefaultCorrect

и, если указатель мыши наведен, он должен выглядеть так: enter image description here

Это случай на "main " окно; Итак, он работает отлично и правильно.

Теперь я делаю то же самое со своими NSWindowController, NSWindow, NSView и вот результат: По умолчанию это выглядит так (правильно ) enter image description here

Затем, когда указатель мыши закончился, он все тот же: enter image description here

Затем, если я изменю цвет интерфейса macOS от темного к светлому или от светлого к темному, он становится и остается таким: enter image description here

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

Этого не происходит с кнопками, которые я создаю с помощью [NSButton alloc], это происходит только с кнопками, созданными с помощью [NSWindow standardWindowButton: forStyleMask:], и в этом случае они становятся подклассом NSThemeWidget (например: _NSThemeCloseWidget вместо непосредственно NSButton) при проверке subviews.

В чем может быть проблема? Что мне не хватает?

...