我正在创建一个状态栏应用,在单击NSStatusItem时显示NSPopover,如下所示:
我添加了通过拖动边缘来调整popover大小的功能,方法是通过子类化popover的视图:
class CMView: NSView {
let tolerance : CGFloat = 10
var state = false
override func mouseDown(theEvent: NSEvent) {
let point = self.convertPoint(theEvent.locationInWindow, fromView: nil)
if (point.y <= tolerance) {
state = true
}
}
override func mouseDragged(theEvent: NSEvent) {
if (state) {
let point = self.convertPoint(theEvent.locationInWindow, fromView: nil)
self.frame = NSRect(
x: self.frame.origin.x,
y: self.frame.origin.y,
width: self.frame.size.width,
height: self.frame.size.height-point.y)
popover.contentSize = self.frame.size
}
}
override func mouseUp(theEvent: NSEvent) {
state = false
}
}
如果桌面未全屏显示,则仅有效。如果我尝试全屏调整大小,它根本不起作用,并且弹出箭头神秘地消失。
在全屏环境中调用时,似乎弹出窗口不会重绘。有没有解决这个问题的方法?
答案 0 :(得分:0)
这里是WWDC。问同样的问题。你必须拥有一个UIElement应用程序 - 这意味着没有停靠图标,没有主菜单。