iPhone/iPad键盘弹出遮挡要编辑内…

2024-06-16 15:58
文章标签 键盘 编辑 iphone ipad 遮挡

本文主要是介绍iPhone/iPad键盘弹出遮挡要编辑内…,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 iPhone/iPad键盘弹出遮挡要编辑内容问题
2011-04-02 16:17:31
标签: 键盘  iPhone  keyboard  遮盖  popover
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处  、作者信息和本声明。否则将追究法律责任。 http://afantihust.blog.51cto.com/2231549/533976
当系统收到显示键盘的请求时,就从屏幕的底部滑出键盘,并将它放在应用程序内容的上方。由于键盘位于内容的上面,所以有可能遮掩住用户希望编辑的文本对象,只能盲操^_^

如何解决可以参考iPhone应用程序编程指南 http://www.apple.com.cn/developer/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TextandWeb/TextandWeb.html#//apple_ref/doc/uid/TP40007072-CH20-SW16
大体思路是:暂时调整一或多个视图的尺寸和位置,从而使文本对象可见。管理带有键盘的文本对象的最简单方法是将它们嵌入到一个UIScrollView(或其子类,如UITableView)对象。当键盘被显示出来时,需要做的只是调整滚动视图的尺寸,并将目标文本对象滚动到合适的位置。为此,在UIKeyboardDidShowNotific ation通告的处理代码中需要进行如下操作:
1. 取得键盘的尺寸。
2. 将滚动视图的高度减去键盘的高度。
3. 将目标文本框滚动到视图中。
但有时会碰到要编辑字段不在UIScrollView中的情况,比如烟草项目中点击靠近底部的烟草信息,弹出的popover可能会被弹出的键盘遮盖,这时通过简单的调整popover箭头方向即可实现弹出窗口随弹出键盘滑动的效果,当iPad竖着放置时点击列表中靠上部的行,箭头朝上;点击靠下部的行,箭头朝下;iPad横向放置时箭头朝右,效果如图所示:
iPad竖着放置时点击列表中靠上部的行,箭头朝上
点击靠下部的行,箭头朝下
竖向放置弹出键盘效果
横向放置时箭头朝右
横向放置弹出键盘效果

代码如下:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  OrderNumViewController *orderNumViewController = [[OrderNumViewController alloc] init];
  orderNumViewController.containerViewController = self;
  if (orderNumPopover == nil) {
    orderNumPopover = [[UIPopoverController alloc] initWithContentViewContr oller:orderNumViewController];
  }else {
    orderNumPopover.contentViewController = orderNumViewController;
  }
 
  OrderOnlineCell *cell = (OrderOnlineCell *)[tableView cellForRowAtIndexPath:indexPath];
  NSArray *indexArray = [tableView indexPathsForVisibleRows ];
  BOOL upHalf = true;
  int halfIndex = indexArray.count / 4;
  if (indexPath.row > [[indexArray objectAtIndex:halfIndex] row]) {
    upHalf = false;
  }
  [self showOrderNumPopover:cell isUpHalf:upHalf];
  [orderNumViewController release];
}
-(void)showOrderNumPopover:(OrderOnlineCell *)cell isUpHalf:(BOOL)upHalf{
  orderNumPopover.popoverContentSize = CGSizeMake(400, 320);
  CGRect popoverRect = CGRectMake(cell.bounds.origin.x + cell.bounds.size.width - 100, 
                  cell.bounds.origin.y,
                  27, 32);
  UIInterfaceOrientation orientation = self.interfaceOrientation;
  UIPopoverArrowDirection direction = UIPopoverArrowDirectionU nknown;
  if ((orientation == UIInterfaceOrientationPo rtrait) || (orientation == UIInterfaceOrientationPo rtraitUpsideDown)) {
    if (upHalf) {
      direction = UIPopoverArrowDirectionU p;
    }else {
      direction = UIPopoverArrowDirectionD own;
    }
  }else {
    direction = UIPopoverArrowDirectionR ight;
  }
[orderNumPopover presentPopoverFromRect:popoverRect
                  inView:cell
            permittedArrowDirections :direction
                    animated:YES];
}

 

本文出自 “何必呢” 博客,请务必保留此出处http://afantihust.blog.51cto.com/2231549/533976

这篇关于iPhone/iPad键盘弹出遮挡要编辑内…的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1066892

相关文章

如何解决Pycharm编辑内容时有光标的问题

《如何解决Pycharm编辑内容时有光标的问题》文章介绍了如何在PyCharm中配置VimEmulator插件,包括检查插件是否已安装、下载插件以及安装IdeaVim插件的步骤... 目录Pycharm编辑内容时有光标1.如果Vim Emulator前面有对勾2.www.chinasem.cn如果tools工

禁止平板,iPad长按弹出默认菜单事件

通过监控按下抬起时间差来禁止弹出事件,把以下代码写在要禁止的页面的页面加载事件里面即可     var date;document.addEventListener('touchstart', event => {date = new Date().getTime();});document.addEventListener('touchend', event => {if (new

键盘快捷键:提高工作效率与电脑操作的利器

键盘快捷键:提高工作效率与电脑操作的利器 在数字化时代,键盘快捷键成为了提高工作效率和优化电脑操作的重要工具。无论是日常办公、图像编辑、编程开发,还是游戏娱乐,掌握键盘快捷键都能带来极大的便利。本文将详细介绍键盘快捷键的概念、重要性、以及在不同应用场景中的具体应用。 什么是键盘快捷键? 键盘快捷键,也称为热键或快捷键,是指通过按下键盘上的一组键来完成特定命令或操作的方式。这些快捷键通常涉及同

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

如何快速练习键盘盲打

盲打是指在不看键盘的情况下进行打字,这样可以显著提高打字速度和效率。以下是一些练习盲打的方法: 熟悉键盘布局:首先,你需要熟悉键盘上的字母和符号的位置。可以通过键盘图或者键盘贴纸来帮助记忆。 使用在线打字练习工具:有许多在线的打字练习网站,如Typing.com、10FastFingers等,它们提供了不同难度的练习和测试。 练习基本键位:先从学习手指放在键盘上的“家位”开始,通常是左手的

推荐练习键盘盲打的网站

对于初学者来说,以下是一些推荐的在线打字练习网站: 打字侠:这是一个专业的在线打字练习平台,提供科学合理的课程设置和个性化学习计划,适合各个水平的用户。它还提供实时反馈和数据分析,帮助你提升打字速度和准确度。 dazidazi.com:这个网站提供了基础的打字练习,适合初学者从零开始学习打字。 Type.fun打字星球:提供了丰富的盲打课程和科学的打字课程设计,还有诗词歌赋、经典名著等多样

jqgrid设置单元格可编辑

1 在单元格的属性列设置为editable。 2 点击编辑按钮的时候,触发某一行设置为edit的状态。 jQuery("#rowed4").jqGrid({url:'server.php?q=2',datatype: "json",colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],colModel

在幼儿园管理系统中,会议管理申请会议修改模块:多个与会人员的回显和修改(编辑)!

在幼儿园管理系统中,会议管理>申请会议>修改模块:多个与会人员的回显(复选框)和修改(编辑)!在处理与会人员的回显(复选框)和修改(编辑)出点问题。无法正确的回显(复选框)出来与会人员和修改(编辑)。 最后终于解决:修改(编辑)的思路是:先把原来的该会议记录下的所有与会人员删除,在添加,即可实现修改(编辑)功能。回显(复选框)的思路是:设置一个flag,判断一下是否要选中(复选框),即可实现

【Unity小技巧】URP管线遮挡高亮效果

前言 在URP渲染管线环境下实现物体遮挡高亮显示效果,效果如下: Unity URP遮挡高亮 实现步骤 创建层级,为需要显示高亮效果的物体添加层级,比如Player 创建一个材质球,也就是高亮效果显示的材质球找到Universal Renderer Data Assets 4.在Assets上添加两个Render Objects组件 第一个做如下三处设置 指定遮挡层级指

Vue3商品SKU多规格编辑组件

商品SKU多规格组件主要用于电商平台的商品详情页,帮助买家在选择商品时能够根据不同的规格(如颜色、尺码、容量等)进行筛选和购买。这种组件的设计旨在提升用户体验,简化购买流程,并确保买家能够准确地选择到自己需要的商品规格。以下是对商品SKU多规格组件的详细解析: 1. 定义与功能 SKU(Stock Keeping Unit)定义:SKU即库存量单位,是指宝贝的销售属性集合,供买家在下单