编辑菜单

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

你能够调整一些菜单的行为来在你的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. vim-复制、粘贴

    选中某些行,可以在命令行模式下执行如下操作 v(小写),按上下左右键,可以选中某些行 V(大写),按上下键,这时候可以直接选中光标所在的行 ctrl+v(小写),可以选中一个矩形区域 取消选中,这些指 ...

  2. Qt之输出控制

    简述 在Qt项目开发过程中,往往需要对程序的一些信息进行控制,比如:打印日志.调试信息等,便于我们后期查找.跟踪及定位问题. 下面,我们来分享下常用的几种方式. 简述 示例代码 应用程序输出 控制台输 ...

  3. IAR FOR STM8 学习笔记 固件库 GPIO

    经过一番挣扎,还是决定使用官方的固件库了.. 从网上下一个STM8S的固件库,记得是FOR IAR的. 找到里面的IAR模板就可以开始用了. 这些都是直接写好的库函数,可以直接调用,但首先得先读懂,先 ...

  4. VB 宏+mysql解决EXCEL表格实现自动化处理

    1.表格模板自动建立源码 Sub opp()Dim myPath$, myFile$, AK As WorkbookApplication.ScreenUpdating = FalsemyPath = ...

  5. fromCharCode vs chr

    fromCharCode vs chr echo off set "fn=%*" set php=d:/www/php5/php.exe cls echo. %php% %fn% ...

  6. Shell中反引号(`)与$()用法的区别

    今天有人提问: echo `echo \\\\\\\w` echo $(echo \\\\\\\w) 为什么输出的不一样? 这就引申出了另一个问题:反引号与$()有没有区别? 这是一个非常有意思的问题 ...

  7. table嵌套table,jquery获取tr个数

    一.所有tr的个数 $("#tableId tr").length 二.所有一级tr的个数 1.$("#tableId > tr").length 2.$ ...

  8. Appium_Java运行测试脚本时问题汇总

    问题一.java.lang.NoClassDefFoundError: org/openqa/selenium/remote/SessionNotFoundExceptionCaused by: ja ...

  9. datetime小练习

    题目: 1.计算你的生日比如近30年来(1990-2019),每年的生日是星期几,统计一下星期几出现的次数比较多2,生日提醒,距离生日还有几天 # !/usr/bin/env python # -*- ...

  10. angular 响应式表单(登录实例)

    一.表单验证 1. 只有一个验证规则: this.myGroup = this.fb.group({ email:['hurong.cen@qq.com',Validators.required], ...