У меня есть 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.
Ожидаемая вещь:
По умолчанию это должно выглядеть так.
и, если указатель мыши наведен, он должен выглядеть так:
Это случай на "main " окно; Итак, он работает отлично и правильно.
Теперь я делаю то же самое со своими NSWindowController
, NSWindow
, NSView
и вот результат: По умолчанию это выглядит так (правильно )
Затем, когда указатель мыши закончился, он все тот же:
Затем, если я изменю цвет интерфейса macOS от темного к светлому или от светлого к темному, он становится и остается таким:
Они по-прежнему работают, когда я нажимаю на них. В какой-то момент, где-то я что-то не переопределяю или не вызываю super, или я что-то неправильно сконфигурировал, поэтому он не реагирует на действия движения мыши и не обновляет sh его состояние, если он не получает событие нажатия мыши, только затем он обновляется .
Этого не происходит с кнопками, которые я создаю с помощью [NSButton alloc]
, это происходит только с кнопками, созданными с помощью [NSWindow standardWindowButton: forStyleMask:]
, и в этом случае они становятся подклассом NSThemeWidget
(например: _NSThemeCloseWidget
вместо непосредственно NSButton
) при проверке subviews
.
В чем может быть проблема? Что мне не хватает?