[英]How to add NSLayoutConstraint to subview of programmatically created NSView subclass?
[英]Programmatically add a close button to nsview
我正在尝试创建具有设置为“NSBorderlessWindowMask”的窗口样式掩码的无边界窗口。 该窗口被子类化并为 canBecomeKeyWindow 和 canBecomeMainWindow 返回“Yes”。 我必须在左上角的视图中只显示最小化按钮。 我正在使用“[NSWindow standardWindowButton:NSWindowMiniaturizeButton forStyleMask:NSBorderlessWindowMask]”获取最小化按钮对象的实例并将其添加为 subview 。 该按钮存在于 nsview 中。 但是变灰并启用并且也不是黄色。 一旦我点击它,它就会变成黄色。 并且在鼠标悬停时,最小化按钮中出现的“-”没有打开。我尝试了 [button setHighlighted:YES] ,它实际上显示为单击。 我添加了跟踪区域以获得鼠标悬停。
_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];
}
试着打电话
[_minButton setNeedsDisplay:YES];
在方法结束时
这对我有用。 这是一个黑客,但它奏效了。
- (void)windowDidBecomeKey:(NSNotification *)notification {
[_minButton highlight:YES];
[_minButton highlight:NO];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.