我正在尝试使用设置为“NSBorderlessWindowMask”的Windows样式掩码创建无边框窗口。 该窗口是子类,并为canBecomeKeyWindow和canBecomeMainWindow返回“Yes”。 我必须在左上角的视图中获得最小化按钮。 我正在使用“[NSWindow standardWindowButton:NSWindowMiniaturizeButton forStyleMask:NSBorderlessWindowMask]”获取最小化按钮对象的实例 并将其添加为子视图。 该按钮出现在nsview中。但是灰色并启用,也不是黄色。 一旦我点击它,它就会变黄。鼠标悬停在“最小化”按钮中出现的“ - ”未进入。 我尝试了[按钮设置突出显示:是],它实际上显示为已点击。 我添加了跟踪区域以使鼠标悬停。 任何帮助都会有所帮助。
_minButton = [NSWindow standardWindowButton:NSWindowMiniaturizeButton forStyleMask:NSBorderlessWindowMask];
[_minButton setFrameOrigin:NSMakePoint(_minButton.frame.origin.x + 7, _minButton.frame.origin.y)];
[_minButton setTarget:self.view.window];
[_minButton setAction:@selector(miniaturize:)];
[self.view addSubview:_minButton];
NSTrackingArea* trackingArea = [[NSTrackingArea alloc]
initWithRect:[_minButton bounds]
options:NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways
owner:self userInfo:nil];
[_minButton addTrackingArea:trackingArea];
- (void)mouseEntered:(NSEvent *)theEvent{
[[_minButton cell]setHighlighted:YES];
}
- (void)mouseExited:(NSEvent *)theEvent{
[[_minButton cell]setHighlighted:NO];
}
答案 0 :(得分:0)
尝试致电
[_minButton setNeedsDisplay:YES];
在方法的最后
答案 1 :(得分:0)
这对我有用。它是一个黑客,但它确实有效。
- (void)windowDidBecomeKey:(NSNotification *)notification {
[_minButton highlight:YES];
[_minButton highlight:NO];