我需要使用自定义NSView
子类来绘制一些内容,但是当用户将鼠标悬停时它不会突出显示,并且当用户点击它时它不会忽略NSMenu
。有什么想法吗?
因此,使用-drawRect:
和[[self enclosingMenuItem] isHighlighted]
我能够判断是否需要将视图绘制为突出显示,并且我有机会这样做。我必须弄清楚的是如何做到这一点。
答案 0 :(得分:5)
也许你应该这样试试:
#define menuItem ([self enclosingMenuItem])
- (void) drawRect: (NSRect) rect {
BOOL isHighlighted = [menuItem isHighlighted];
if (isHighlighted) {
[[NSColor selectedMenuItemColor] set];
[NSBezierPath fillRect:rect];
} else {
[super drawRect: rect];
}
}
答案 1 :(得分:1)
我不确定我是否理解你的问题。我认为你的意思如下:菜单打开,所有图纸都停止绘图。我想这是因为打开的NSMenu阻止了UI'NSRunLoop它的线程。其中之一。你应该尝试在另一个线程中使用线程安全的线程。
答案 2 :(得分:0)
这对我有用。我使用堆栈视图。但这也适用于视图。
library(stringr)
mapply(function(x, y) paste(c(x, y), collapse = ' | '),
str_extract_all(have, '(\\w+ ncd)'), str_extract_all(have, '(ncd \\w+)'))
#[1] "the ncd | ncd mse"
#[2] "new ncd | new ncd | ncd staffs | ncd should"
#[3] "current ncd | ncd post"