编辑菜单

用户能够显示一个编辑菜单来在文本视图、网页视图和图像视图运行诸如剪切、粘贴和选择的操作。

你能够调整一些菜单的行为来在你的app中给用户给多的内容控制。比方你能够:

  • 指定哪一个标准菜单命令对当前的环境合适
  • 在菜单显示之前决定菜单的位置这样你就能够保护你app UI中重要的部分免于被遮挡
  • 当用户双击来显示菜单时决定默认选中的对象

你不能改变菜单它自己的颜色和形状。


查看Copy,
Cut, and Paste Operations
获取怎样在代码中实现这些行为的信息。

为了确保你app中的编辑菜单行为符合用户的期待,你应该:

显示在当前环境有意义的命令。比方说,假设没有内容被选中,菜单不应该包括复制和剪切。由于这些命令是对选中内容操作的。相同的,假设某些东西被选中了,菜单就不应该包括选择。假设你在一个自己定义的视图支持编辑菜单。你要对确保菜单显示的命令适合当前的环境负责。

调节你布局中显示的菜单。iOS在插入光标或选择内容的上面或以下显示编辑菜单,这取决于可使用的空间,而且放置菜单指针这样用户就能够看到菜单命令是怎样和内容关联的。必要的话,你能够编码在菜单显示之前决定菜单的位置这样你就能够保护你app UI中重要的部分免于被遮挡。

支持用户能够唤起菜单的全部手势。尽管触摸和长按手势是用户显示编辑菜单的主要方式,他们也能够在文本视图中双击一个单词来选择单词并同一时候显示菜单。假设你在一个自己定义的视图中支持菜单,确保响应全部的手势。

此外,你能够定义用户双击时默认选中的对象。


不要在你的UI中创建一个能够在编辑菜单中获取的命令的button。比方说。让用户使用编辑菜单运行复制操作比提供一个复制button要好。由于用户会想知道为什么在你的app中有两种方式去做同一件事情。

假设对用户实用的话,考虑支持静态文本你的选中。比方说,一个用户可能想复制一个图片的标题,但他们不想复制标签元素或者视图标题的label,比方账目。在文本视图中,单词的选中应该是默认的。

不要让button标题可选中。一个可选中的button标题会让用户非常难不激活button的情况下显示编辑菜单。

一般来说。行为类似button的元素不须要被选中。


将支持撤销与反复和对复制与粘贴的支持联合起来。人们常常在改变想法的时候期望能撤销近期的操作。由于编辑菜单在运行动作前不会请求确认。你须要给用户机会去撤销和反复这些操作。

假设你须要创建类似下方的自己定义的编辑菜单元素。遵循这些指南:



直接在用户选中内容上方创建编辑、更改或其它动作的编辑菜单。人们期待标准菜单栏目在当前环境文本或对象的上方操作,而且最好你自己定义的菜单栏目也有类似的行为。

在全部系统提供的条目后面列出自己定义的条目。

不要在系统提供的条目中散布你的自己定义条目。


保持自己定义菜单栏目的数量合理。你不想要过多的选项淹没你的用户。


为你的自己定义菜单栏目使用简洁的名字并确保名字精确地描写叙述了命令的功能。一般来说。条目名应该是描写叙述运行的动作的动词。

尽管你通常应该使用一个单一的大写单词作为条目名,假设你一定要使用短语的话,使用标题风格的大写。(简短地说,标题风格的大写意味着大写每一个单词。除了文章、并列连词和四个字母或下面的介词。)



本文翻译自苹果官方文档

《iOS Human Interface Guidelines》——Edit Menu的更多相关文章

  1. 《iOS Human Interface Guidelines》——Multitasking

    多任务处理 多任务处理让人们在屏幕上(以及合适的iPad模式)查看多个app,而且在近期使用的app中高速地切换. 在iOS 9中.人们能够使用多任务处理UI(例如以下所看到的)来选择一个近期使用的a ...

  2. 《iOS Human Interface Guidelines》——Search Bar

    搜索栏 搜索栏接收用户输入用于搜索的文本(例如以下,带有占位文本). API NOTE 查看UISearchBar学习怎样在你的代码中定义搜索栏.查看UISearchDisplayController ...

  3. 《iOS Human Interface Guidelines》——Popover

    弹出框 弹出框是当人们点击一个控件或屏幕上一个区域时显示的一个暂时的界面. API NOTE 在iOS 8及以后的系统中.你能够使用UIPopoverPresentationController来显示 ...

  4. 《iOS Human Interface Guidelines》——System Button

    系统button 系统button运行一个app特定的动作. API NOTE 在iOS 7中,UIButtonTypeRoundedRect被又一次定义成UIButtonTypeSystem.查看U ...

  5. 《iOS Human Interface Guidelines》——Wallet

    Wallet Wallet(钱包)帮助人们查看和管理Pass(凭证),这是一种相似于登机牌.优惠券.会员卡.奖励卡和各种票的物理凭证的数字替代.Wallet也同意人们加入信用卡.借记卡和储值卡来和Ap ...

  6. 《iOS Human Interface Guidelines》——Container View Controller

    容器视图控制器 容器视图控制器管理和展示它的子视图集合--或者子控制器集合--以一种自己定义的方式. 系统定义的容器视图控制器的样例有标签栏视图控制器.导航栏视图控制器和分栏视图控制器(查看Tab B ...

  7. 《iOS Human Interface Guidelines》——Segmented Control

    分段控件 分段控件是一组线性段.每一个button相应的功能能够显示一个不同的视图. API NOTE 查看UISegmentedControl来学习很多其它关于在你的代码中定义一个分段控件的内容. ...

  8. 【译】iOS人性化界面指南(iOS Human Interface Guidelines)(一)

    1. 引言1.1 译者自述 我是一个表达能力一般的开发员,不管是书面表达,还是语言表达.在很早以前其实就有通过写博客锻炼这方面能力的想法,但水平有限实在没有什么拿得出手的东西分享.自2015年7月以来 ...

  9. iOS 人机交互指导方针(iOS Human Interface Guidelines)

    iOS 人机交互指导方针(iOS Human Interface Guidelines) 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名 ...

随机推荐

  1. Linux shell command学习笔记(一)

    Shell的种类有很多种,例如CSH,Bourne Shell,Korn Shell.在现在的大多数Linux发行版中,默认的Shell一般都是Bourne again shell(bash). &l ...

  2. 有关 Lambda && linq练习 有待整理

    1. 查询Student表中的所有记录的Sname.Ssex和Class列.(select sname,ssex,class from student) Students.Select(s=> ...

  3. USB串行端口

    USB-SERIAL CH341A(COM22)USB串行端口

  4. 原生js大总结三

    021.定义函数的几种方式   1.关键字函数:function fnName(){};   2.字面量函数:var fn = function(){};   3.构造函数:var fn = new ...

  5. C++ 多线程阻塞 (多线程同步)(MsgWaitForMultipleObjects)(连着消息一起控制,牛)

    在主线程定要禁止使用waitforsingleobject(),原因是会阻塞主线程的消息循环,所以必须使用另一种 MsgWaitForMultipleObjects,即可以让消息通过,下面就是一个基于 ...

  6. 一个IP建多个Web站点

      TCP端口法 由于各种原因,我们有时候需要在一个IP地址上建立多个web站点,在IIS5中,我们可能通过简单的设 置达到这个目标. 在IIS中,每个 Web 站点都具有唯一的.由三个部分组成的标识 ...

  7. JS错误记录 - 按左右箭头div移动、一串div跟着鼠标移动

    本次练习错误总结: 1. div跟着用户操作而移动,首先必须要绝对定位,否则无法移动. 2. if条件语句里面是双等号,不是单等号(赋值). 3. 坐标值没有Right,只能offsetLeft 加减 ...

  8. 【Codeforces Round #432 (Div. 1) B】Arpa and a list of numbers

    [链接]h在这里写链接 [题意] 定义bad list是一个非空的.最大公约数为1的序列.给定一个序列,有两种操作:花费x将一个元素删除.花费y将一个元素加1,问你将这个序列变为good list所需 ...

  9. 20160206.CCPP体系具体解释(0016天)

    代码片段(01):.指针.c+02.间接赋值.c 内容概要:内存 ///01.指针 #include <stdio.h> #include <stdlib.h> //01.取地 ...

  10. 【习题5-1 UVA - 1593】Alignment of Code

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 模拟题,每一列都选最长的那个字符串,然后后面加一个空格就好. 这个作为场宽. 模拟输出就好. [代码] #include <b ...