美文网首页
iOS开发 iPad键盘撤销操作的注意点

iOS开发 iPad键盘撤销操作的注意点

作者: 孙国立 | 来源:发表于2022-04-20 10:22 被阅读0次

键盘的撤销按键是iPad独有的一个按键,在手机端是不存在这个按键的,但是手机端同样也存在撤销操作,只不过并不是通过键盘上的按键来进行撤销操作的。

问题

当对TextView或者是TextField添加了限制输入长度。然后在控件中输入到最长长度,这时候继续去输入东西,但是从界面上来看我们输入的东西是没有显示出来的。此时按一下键盘上的撤销按键

undo.png
此时就会出现数组越界的崩溃问题。
当出现数组越界这个问题的时候其实我们很容易就能想到原因是什么的。就是虽然我们限制了输入的长度,但实际上在存储撤销信息的数组中仍然还在继续的输入东西。但是实际上控件中却并没有相应的信息(或者说是长度与数组的长度不符)。这个问题最容易出现在TextField,因为原生的控件中并没有实现实时的输入信息,所以通常我们会添加一个监听来实现很少去调用TextFieldDelegate。所以这个问题也就很容易忽略掉了。
解决方案

TextView

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        let existedLength = textView.text?.count ?? 0
        let selectedLength = range.length
        let replaceLength = text.count
        let pointLength = existedLength - selectedLength + replaceLength
        if pointLength > 最大长度{
            return false
        }
        return true
    }

TextField

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        let existedLength = textField.text?.count ?? 0
        let selectedLength = range.length
        let replaceLength = string.count
        let pointLength = existedLength - selectedLength + replaceLength
        if pointLength > 最大长度 {
            return false
        }
        return true
    }

具体的内部细节问题还是要大家共同去探索学习,这里只提供了一下解决方案

一点点延伸

当我们在输入键盘自带的表情的时候一定是要去注意一下的。因为他的长度是2,我们正常输入数字、字母、汉字等等可以看做是1,所以如果输入框里面带有表情一定要注意判断长度。

检测是否有表情

相关文章

  • iOS开发 iPad键盘撤销操作的注意点

    键盘的撤销按键是iPad独有的一个按键,在手机端是不存在这个按键的,但是手机端同样也存在撤销操作,只不过并不是通过...

  • iOS iPad开发~demo

    iOS iPad开发~demo iOS iPad开发~demo

  • IOS开发学习笔记(一)

    概述:iOS是苹果开发的手持设备操作系统(iPhone,iPad,iPod touch,iPad mini)。基于...

  • iOS开发框架介绍

    记录下相关框架介绍 iOS开发相关信息 iOS是运行于iPhone、iPod touch以及 iPad设备的操作系...

  • iOS开发隐藏键盘方法总结

    iOS开发隐藏键盘方法总结 iOS开发隐藏键盘方法总结

  • Keynote基础使用

    一、撤销或重做 1、撤销上次操作:选取“编辑”>“撤销”(从屏幕顶部的“编辑”菜单中),或者按下键盘上的 Comm...

  • 解决自定义键盘头部一闪的问题

    iOS开发小技巧--iOS键盘 inputView 和 inputAccessoryView iOS键盘 inpu...

  • IOS系统概述与层次

    一、概述IOS是apple公司为其自己的移动设备(iPhone,iPod touch,iPad)而开发的操作系统,...

  • iPad Multitasking

    iOS9 iPad分屏多任务操作教程 原文链接 @iPad用户: SlideOver: 简介:iPad简单分屏功能...

  • vim撤销与重做

    在vi中按u可以撤销一次操作u 撤销上一步的操作Ctrl+r 恢复上一步被撤销的操作 注意:如果你输入“u”两...

网友评论

      本文标题:iOS开发 iPad键盘撤销操作的注意点

      本文链接:https://www.haomeiwen.com/subject/lktvertx.html