相关疑难解决方法(0)

NSViewController缓慢注册鼠标事件?

我一直在为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: …
Run Code Online (Sandbox Code Playgroud)

macos swift

7
推荐指数
1
解决办法
798
查看次数

NSTableView的viewForTableColumn:row:调用的行比Mavericks中的预期多

我的理解是viewForTableColumn:row:仅针对可见行被调用。

我使用以下命令确认了这一点:NSRange rowsInRect = [aTableView rowsInRect:[aTableView visibleRect]]; NSInteger lastVisibleRow = rowsInRect.location + rowsInRect.length;

但是对于Mavericks,viewForTableColumn:row在不向下滚动的情况下被调用了很多次。

例如,如果我的最后一个可见行是35,则为139行调用数据源方法。

有人可以解释吗?

cocoa nstableview

3
推荐指数
1
解决办法
439
查看次数

基于视图和单元格的NSTableView

可可中基于单元格的视图和基于视图的表格视图之间的主要区别是什么?

我的理解是基于单元格的表视图基本上用于显示字符串,而基于视图的表用于自定义单元格。用户事件(例如拖动行,选择等)可以在基于视图的视图中进行处理。

基于单元格的表视图使用objectValueForTableColumn:方法,而基于视图的表使用viewForTableColumn:方法。

我的理解正确吗?或者这些表视图之间是否还有其他设计问题。何时基于单元格以及何时基于视图。

提前致谢

macos cocoa nstableview appkit

3
推荐指数
1
解决办法
1172
查看次数

标签 统计

cocoa ×2

macos ×2

nstableview ×2

appkit ×1

swift ×1