当前位置:  开发笔记 > IOS > 正文

NSViewController缓慢注册鼠标事件?

如何解决《NSViewController缓慢注册鼠标事件?》经验,为你挑选了0个好方法。

我一直在为OS X上传一个上传menubar应用程序的小图片.我NSView为上传的项目创建了自定义子类.

这是默认情况下的样子:

馄饨 - 没有徘徊

鼠标事件由视图NSViewController按以下方式处理:

import Cocoa

class MenuItemController: NSViewController {

    private var trackingArea: NSTrackingArea?

    override func mouseEntered(theEvent: NSEvent) {
        if let v = self.view as? MenuItemView {
            v.shouldHighlight = true
            v.needsDisplay = true
        }
    }

    override func mouseExited(theEvent: NSEvent) {
        if let v = self.view as? MenuItemView {
            v.shouldHighlight = false
            v.needsDisplay = true
        }
    }


    override func viewDidLoad() {
        super.viewDidLoad()

        if (trackingArea == nil) {
            trackingArea = NSTrackingArea(rect: self.view.bounds, options: [.ActiveAlways, .MouseEnteredAndExited], owner: self, userInfo: nil)
            self.view.addTrackingArea(trackingArea!)
        }

        /* rest of the code... */
    }

}

它工作正常,直到我快速移动光标的项目.看起来mouseExited()事件没有被调用,并且视图保持蓝色背景(鼠标实际上在Quit按钮上):

馄饨虫

我也尝试将鼠标处理移动到NSView,但结果相同.我感谢任何输入!谢谢!

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有