Leopard详细信息:NSTableView中的锚定行选择

2006年8月,我写道“高度选择性“,对大多数Mac OS X软件中基于键盘的多项选择方式的详细评论简而言之,有两种模式可供多项选择,锚定非锚固

锚式:选择在一个方向上增长,在另一个方向上缩小在锚定选择模型中,如果使用Shift-Down在列表中选择两个或更多项目,则按Shift-Up将取消选择范围底部的项目(反之亦然:如果您首先选择带有Shift-Up的项目,则从选择的顶部取消选择Shift-Down。)

非锚定的:选择在两个方向上增长,从不缩小在非锚定选择模型中,Shift-Down始终向下扩展选择范围,Shift-Up始终向上延伸。

我的论点是锚定更好,因为它允许你在不切换到鼠标的情况下纠正错误例如if you press Shift-Down four times but realize you’ve selected one too many items, in the anchored model you can simply press Shift-Up to deselect the last item; in the unanchored model, pressing Shift-Up增加选择范围顶部的另一个项目问题是大多数Mac应用程序使用的是未锚定的模型,因为它是Cocoa的NSTableView和Carbon的数据浏览器的默认设置。

关键词有“是”。

在Leopard中,Cocoa的NSTableView改为锚定模型您可以在任何具有支持多选的列表的Cocoa应用程序中看到这一点:Mail的消息列表,iChat的Buddy窗口,Safari的书签和地址簿只是几个例子关于第三方应用程序,我写道:

There’s certainly a consistency argument to be in favor of using the Apple-supplied default selection behavior, regardless whether you personally agree with itThe idea being that by using the default behavior, list selection will work the same in your software as it does almost everywhere elseAnd if Apple does change the behavior in some future version of Mac OS X, your software will pick up the new default behavior “for free”.

这正是发生的事情 - 所有使用Cocoa的NSTableView的应用程序,不仅仅是Apple的,都在Leopard上免费获得了新的锚定选择模型。

因此,如果您已经注意到Mail中的这种变化,那么不是Mail发生了变化,而是许多Cocoa应用程序中使用的底层NSTableView列表控件这就是行为的原因使用Carbon Data Browser控件的应用程序中的更改(在Cocoa中相当于Carbon到NSTableView)Finder和iTunes是Apple的两个最着名的Carbon应用程序,两者仍然使用未锚定的选择模型你也可以在像Interarchy这样的第三方Carbon应用程序中看到这一点。

理想情况下,如果Apple在碳数据浏览器中也改变了这种行为,那么在一致性和可用性方面会更好绝大多数Mac用户都不知道Cocoa和Carbon是什么,所以Finder和iTunes中的不同行为对他们来说似乎是任意的但是,如果有一件事我希望看到Apple在Leopard中解决这个问题,那正是他们所做的:在NSTableView中更改它。

我不知道是谁在Apple推动这一变化,也不知道我的论文是否对决定有影响但无论你是谁,我都感谢你。

以前: MacBook Air的吸引力
下一个: 弗利姆闪光