2010-04-04 35 views
7

几乎任何涉及文本的成熟程序都会实现“双击选择单词”,并且在某些情况下,“三次点击以选择像整行一样的其他内容”作为功能。我发现这些功能很有用,但它们在程序之间往往不一致。关于双击或三重“单击选择文本”功能行为的约定?

示例 - 某些程序的双击不会在一个单词之后选择结尾空格,但大多数都会这样做。一些人认识到 - 人物是一个词的结尾,其他人则不会。 SO喜欢在我写这篇文章时选择整个段落,当我三次点击它时,VS web developer 2005没有三重点击支持,而超编辑32将在三次点击时选择一行。我们可以想出在程序间实现双击和三击模式匹配的无数不一致之处。

如果没有其他人实现了关于模式匹配应如何工作的约定,我很关心如何在my程序中实现此行为。

我的问题是,是否存在一个约定(约定?也许是MS或Linux约定?),它决定了这些功能如何被假定为最终用户的行为?他们是什么,如果有的话?

+1

你还在实现自己的文本编辑器组件吗? – 2010-04-04 20:26:01

+0

我使用的Opera浏览器在双击某个单词时也会打开上下文菜单。三次点击选择一个段落。 – Pindatjuh 2010-04-04 20:42:14

+0

@matti,我是... – John 2010-04-04 23:37:10

回答

11

我不相信有一个标准的水平,你想要的规格,有可能不应该是。 Apple Human Interface Guidelines是最完整的。关于选择内容(与控件或离散数据对象相对),他们说:

双击是最常用作其他操作的快捷方式,例如...选择一个单词。按下三次点击选择应用程序定义的下一个逻辑单元。在文字处理文档中,单词中的三击选择包含单词的段落...。在单词内双击可选择单词。选择应该提供“聪明”的行为;例如,如果用户删除了所选单词,则该单词之后的空格也应该被删除......例如,在某些情况下(例如编程语言),允许用户选择左括号和右括号(或(p115-116)

苹果对于字符是什么和不包括在内是非常具体的一句话。

微软Windows User Interaction Experience Guidelines说:

对于某些类型的可选对象中,每次点击扩大点击的效果。例如,单击文本框设置输入位置,双击选择一个单词,然后三击选择一个句子或段落。 (P430)

Java Swing Look and Feel Design Guidelines说:

双击(点击鼠标按钮两次快速连续不移动鼠标)来选择较大的单位(例如,在文本选择一个单词领域)…。三次点击(快速连续点击鼠标按钮三次而不移动鼠标)用于选择更大的单位(例如,在文本字段中选择整行)...。文本行中的三次点击取消选择任何现有选择并选择该行。

Gnome Human Interface Guidelines对双击和三击应该做什么不太多说。

这给你自由选择最适合你的用户的东西。双击和三击是专家捷径,因此他们的行为应该旨在最大限度地提高效率。考虑为什么用户选择一些东西并设计成最简单和最快的。

例如,显然当双击单词时包括尾部空格的原理是用户通常选择一个单词以便将其复制或粘贴到文本中的其他位置。这意味着您会自动包含尾部空格,以便用户不必手动删除源处剩余的额外空间,并在目标位置添加分词空间。

同样,如果用户选择一行代码或段落将其复制或移动到其他位置,则可能需要包含换行符,以便用户不会在源处留有空行并强制手动在目的地添加换行符(假设他们不想将行/段落合并到另一行/段落中)

如果选择的内容不是复制和移动句子中的文本,可能适用,你不一定要包括尾随空格或换行符。这就是为什么不应该有一个标准。

另一种方法是做苹果电话智能剪切和粘贴(参见人机界面指南)或Microsoft Word的智能剪切和粘贴,其中在剪切,复制,粘贴和删除时不是在选择时进行空格,换行符和其他调整。

+0

多么奇妙,全面的答案!如果我有大量的代表给予,并有能力这样做,我会给你一个赏金。标记我个人的感谢。 – John 2010-04-07 14:56:13

+0

我冒昧地接受了迈克尔一直很好的回答,你还应该看看他的网站,它肯定是关于GUI /可用性的最佳资源之一。 – mafu 2010-05-21 10:14:24

1

在Windows,Linux和OS X双击选择光标下三击单词选择整个文本行(只有单线,即换行)

+2

Windows上的Chrome选择整个段落进行三次点击。 – rjh 2010-04-04 20:45:34

+0

+1我喜欢三击时选择句子。 – 2010-04-04 20:47:42

+0

“仅限单行,即包线”==段落? (在这种情况下) – adamse 2010-04-04 20:48:23

1

在我的完美的世界里,我将有它像这样工作。

  • 就一个字双击选择只有两个字,(根据现场的语法规则字)没有尾随空间(这是在程序之间更容易的复印,这样我就不必删除任何粘贴时出现空格)
  • 如果删除选定的单词,我的文本编辑器会发现我的内容并删除剩余的空间
  • 三重点击选择没有尾随换行符的行。 (一段是已包装的长线)
+0

这是我最喜欢的回复,虽然看起来我们还没有找到官方标准。但请为我的感谢和橙色箭头留下您的时间。 :) 我完全同意你的观点。特别是关于没有尾随空格 - 这就是程序之间的这种特殊的不一致,让我注意到程序首先实现了这些功能的不一致性。谢谢你指出,在一个SO“段落”上三次点击实际上是一行文本。 它从来没有发生过,但它只是一个带有自动换行的文本行,而不是换行符。 :) – John 2010-04-05 00:00:09

0

查找答案,并想出一个替代解决方案: 我喜欢写在文本代码或命令,并且将它们复制而不结束\ n至shell提示符 1.使用记事本 2.环绕与每个线() 3.使用Ctrl +双击。 精细...