NSStatusItem全屏问题

时间:2015-03-19 19:52:05

标签: xcode macos cocoa swift nsstatusitem

我正在创建一个状态栏应用,在单击NSStatusItem时显示NSPopover,如下所示:

enter image description here

我添加了通过拖动边缘来调整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
    }
}

如果桌面未全屏显示,则有效。如果我尝试全屏调整大小,它根本不起作用,并且弹出箭头神秘地消失。

在全屏环境中调用时,似乎弹出窗口不会重绘。有没有解决这个问题的方法?

1 个答案:

答案 0 :(得分:0)

这里是WWDC。问同样的问题。你必须拥有一个UIElement应用程序 - 这意味着没有停靠图标,没有主菜单。