iOS8 委托方法中的 nil 对象 - 自定义键盘

2024-04-07

我正在构建一个自定义键盘 我正在我的中实现以下委托方法InputViewController.
但我总是得到_textInput = nil_

- (void)textWillChange:(id<UITextInput>)textInput
- (void)textDidChange:(id<UITextInput>)textInput
- (void) selectionWillChange:(id<UITextInput>)textInput
- (void) selectionDidChange:(id<UITextInput>)textInput

有人知道如何修复它吗?
Is it nil因为某种原因?
我需要自己实施一些东西吗?


好问题。但似乎UITextInputDelegate不是一个协议you实施。

来自苹果文档,标题为底层文本处理技术 https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/LowerLevelText-HandlingTechnologies/LowerLevelText-HandlingTechnologies.html:

当文本视图由于外部原因发生变化时,即: 它们不是由来自文本输入系统的调用引起的 -UITextInput对象应该发送textWillChange:, textDidChange:, selectionWillChange:, and selectionDidChange:发送至输入的消息 delegate(它持有对它的引用)。例如,当用户点击 文本视图,您可以设置所选文本的范围以放置 手指下的插入点,您将发送selectionWillChange:在更改所选范围并发送之前selectionDidChange:更改范围后。

并从docs https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextInputDelegate_Protocol/#//apple_ref/occ/intfm/UITextInputDelegate/textWillChange:在 UITextInputDelegate 上:

UIKit 提供了一个私有文本输入委托,它在 运行时到其类采用的对象的 inputDelegate 属性 UITextInput 协议。

上述的含义是我们不执行这些委托方法;我们用它们来通知inputDelegate您已通过键盘输入以外的方式更改了文本或选择。

这是一个example https://searchcode.com/codesearch/view/68050187/#l-2098说明这一点的方法:

- (void)delete:(id)sender;
{
    if (selection && ![selection isEmpty]) {
        [inputDelegate textWillChange:self];
        [inputDelegate selectionWillChange:self];
        [self replaceRange:selection withText:@""];
        [inputDelegate selectionDidChange:self];
        [inputDelegate textDidChange:self];
    }
}

带有更多示例的示例代码here https://searchcode.com/codesearch/view/68050187/#l-2098.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS8 委托方法中的 nil 对象 - 自定义键盘 的相关文章

  • 不明白 Swift 中的闭包示例

    我正在尝试了解 swift 和闭包 我被这个例子困住了 numbers map number Int gt Int in let result 3 number return result 什么是 number Int gt Int 它是一
  • UITableView 滑动删除 iOS 上的手势冲突

    我的手势识别器有问题 我的目标是在表视图中实现使用滑动删除 但我认为其他手势是相互冲突的 我正在使用这个库romonthego REFrostedViewController https github com romaonthego REF
  • iOS 解决方法:在没有 CSS 属性的情况下平滑滚动 滚动行为:平滑?

    编辑 我找到了一个 jQuery 解决方案 https codepen io chriscoyier pen dpBMVP https codepen io chriscoyier pen dpBMVP这个确实可以在 iOS 上运行 我想
  • 如何使用 Core Graphics 在我的触摸位置绘制一个圆圈?

    新程序员来了 我在尝试使用 Core Graphics 在触摸位置周围绘制描边弧时遇到问题 我有绘制圆圈的方法工作正常 并且我已经测试并在点击屏幕时注册触摸 但是当我尝试在点击时调用绘制圆圈的方法时 我收到错误 CG ContextBlah
  • XCode 4.5 给我“SenTestingKit/SenTestKit.h”文件未找到,但适用于 4.4.1

    我刚刚安装了 XCode 4 5 它在我现有的项目之一上给了我一个 SenTestingKit SenTestingKit h 文件未找到错误 此错误仅发生在 XCode 4 5 中 但它在 4 4 1 上编译正常 我已经检查过SenTes
  • iOS 电池监控 Swift

    我已将监控设置为启用 但模拟器和设备中的电池电量仍然为 1 UIDevice currentDevice batteryMonitoringEnabled true var level UIDevice currentDevice batt
  • iOS 上的 UIBezierPath 操作

    我从一条直线开始 我希望用户能够触摸并拖动该线 使其弯曲 实际上 他们有能力将线条操纵成波浪形状 我不确定从技术上实现这一目标的最简单方法 我首先创建了三次曲线的 UIBezierPaths 数组 目的是操纵控制点 但似乎一旦绘制了 UIB
  • AVCaptureSession 具有多个方向问题

    我正在尝试实现条形码扫描仪 我有一个 AVCaptureSession 它从 AVCaptureDevice 接收视频 我想支持所有方向 使用以下代码 当我运行应用程序时 纵向一切正常 然而 在横向方向上 视图会旋转 但视频输入不会旋转 所
  • 自定义 UITableViewCell 选择样式?

    当我点击我的UITableViewCell 当我单击单元格时 背景部分 我的背景图像未覆盖的区域 会变成蓝色 另外 所有的UILabel单击时单元格上的 s 变为白色 这就是我想要的 然而 我不想要的是当我点击它时的蓝色背景 但如果我这样做
  • 使用 Interface Builder 创建 UIScrollView 的步骤

    我正在尝试使用 UIScrollView 但似乎有一些基本的事情我不理解 假设我想在我的 iPhone 应用程序中使用 UIScrollView 我有一个充满按钮的视图 尺寸为 320x700 显然 这对于 320x480 的 iPhone
  • 添加自定义过渡会导致 xib 加载错误的屏幕尺寸

    我正在尝试向具有 xib 的 UIViewController 添加自定义过渡 我尝试了几种方法 但它们都有相同的问题 视图显示的屏幕尺寸错误 我当前的示例基于以下教程 使用 Swift 在 iOS 中自定义 UIViewControlle
  • 如何恢复消耗品应用内购买?

    我正在开发一款 iOS 游戏 用户可以通过应用内消耗品购买一定数量的内部货币 比如 1000 金币 如果用户想将余额从一台设备转移到另一台设备 如何恢复消耗品购买 在苹果的文档中 它说我们必须使用我们自己的服务器 但是如何获取用户的Appl
  • 进入前台后刷新数据

    更改默认设置后 我想在AppDelegate中进入前台时刷新myViewController的数据 我所做的是 AppDelegate m void applicationDidFinishLaunching UIApplication a
  • 以编程方式触发iOS摇动事件

    如何以编程方式触发 iOS 中的摇动事件 我尝试过以下方法 但它总是崩溃 void shake NSLog TEST UIMotionEventProxy m NSClassFromString UIMotionEvent alloc in
  • SiriKit 错误:此应用程序不支持捐赠意图

    我在 Xcode 10 iOS 12 Beta 中捐赠自定义意图时遇到问题 我创建了一个在我的主应用程序目标和 OrderIntent 目标之间共享的自定义框架 我创建了一个 intentdefinition 文件 并将目标成员资格设置为我
  • 指定访问组时出现 KeychainItemWrapper 错误

    相当长一段时间以来 我一直在使用 KeychainItemWrapper 的 ARC 版本成功读取和写入私有钥匙串项目 我现在正在努力将我的 iOS 应用程序转换为使用共享访问组 以便我的 2 个共享相同应用程序前缀的应用程序可以访问钥匙串
  • 苹果企业程序分发问题[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 这个问题涉及到Apple iOS 开发者企业计划 http developer apple com programs ios enterprise 我
  • 避免 UIImage 的 imageNamed - 内存管理

    我正在经历这个链接 http akosma com 2009 01 28 10 iphone memory management tips 我遇到了一个点避免 UIImage 的 imageNamed 出于什么原因我们应该避免这种情况 它会
  • 分发内部业务 IOS 应用程序

    我遇到了 IOS 应用程序分发的一个令人困惑的部分 因此 我需要简单细分一下我的限制 即仅将我的应用程序分发给我的员工 同事或任何被视为 内部 的人 这是表明我不希望该应用程序出现在应用程序商店中的另一种方式 我的情况是我为几家公司开发 他
  • IPV6 快速可达性

    我是 swift 和 xcode 的新手 并且我的应用程序因 IPV6 而被拒绝 性能 2 1 当我们执行以下操作时 您的应用程序会在运行 iOS 9 3 5 并连接到 IPv6 网络的 iPad 和 iPhone 上崩溃 具体来说 当我们

随机推荐

  • 为什么 eclipse 无法正确部署我的动态 Web 项目?

    问题是 我在源代码控制下有一个 java 动态 Web 项目 并在我的 Eclipse 工作区中检出 之前 我能够从 eclipse 中在本地 Tomcat 服务器上运行 servlet 但是 我进行了一些更改 删除了一些文件并添加了一些新
  • 如何在 JavaScript 中旋转图像?

    我想在单击打开按钮时旋转风扇图像 单击关闭按钮 旋转停止 我的代码是 img src fan png width 200 br
  • Android 支持库 ActionBar NullPointerException 版本 2.2(级别 8) - 与preferences.xml冲突

    我正在使用 v7 支持库在 Android 2 x 上显示 ActionBar 当我将应用程序部署到 IDE Intellij IDEA 中的设备时 应用程序运行正常 当我使用 maven 构建并打包要部署到 Play 商店的应用程序时 我
  • 在 IPython Notebook 之间共享数据

    如果我有多个 IPython 笔记本在同一台服务器上运行 有什么办法可以在它们之间共享数据吗 例如 从另一个笔记本导入变量 谢谢 这对我有用 store 命令允许您在两个不同的之间传递变量 笔记本 data 这是我想要传递到不同笔记本的字符
  • DateTimePicker 控件不显示 AM/PM

    我在使用自定义格式 其中包括两个字母的 A M P M 的 DateTimePicker 控件时遇到问题 缩写 使用 en US CultureInfo DateTimeFormat ShortTimePattern 会导致 时 嗯tt 但
  • Python 运行守护进程子进程并读取标准输出

    我需要运行一个程序并将其输出收集到标准输出 该程序 socat 需要在 python 脚本运行期间在后台运行 Socat 一旦运行就会处于守护进程模式 但首先它会将一些行输出到标准输出 我的脚本的其余部分需要这些行 命令 socat d d
  • 如何访问证书扩展(信息)值?

    我有一个由变量访问的 X509Certificate 当我尝试获取证书的详细信息时 我设法通过提供的函数轻松获取 CriticalExtensions 值 但是我想要达到的是存储在证书中并由对象 ID 2 5 29 32 表示的非关键扩展
  • 在 Windows Server 2019 Core 中强制安装不兼容的 .inf 驱动程序 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的第六代 NUC 上安装 Server 2019 Core 尽管安装进展顺利 但当它在没有任何网络连接的情况下启动时 我想起
  • 用 C 处理 TCP 的部分返回

    我一直在读Beej 的网络编程指南 http beej us guide bgnet 获取 TCP 连接的句柄 在其中一个示例中 简单 TCP 流客户端的客户端代码如下所示 if numbytes recv sockfd buf MAXDA
  • 如何序列化和反序列化 JavaScript 对象?

    我需要序列化和反序列化 JavaScript 对象以将它们存储在数据库中 请注意 这些对象包含函数 因此我无法将它们存储为 JSON 因此无法使用 json2 js JavaScript 对象 当然是 JavaScript 的 反 序列化的
  • 在jmeter中设置整个请求url

    我有一个请求 它提供上传网址作为响应正文 uploadUrl https test com 9000 sample uploadurl I m able to extract the uploadUrl using JSON extract
  • Neo4j 中的自动增量

    有没有办法像在 Neo4j 的 MySQL 中一样设置 auto increment 例如 当我使用 GraphDatabaseService 对象创建节点时 我希望节点以 1000000000 等数字开头 非常感谢 看看这个答案 我可以在
  • 从 XSD 生成 Ruby 类

    有没有办法从 XSD 生成 Ruby 类 甚至可能是 ActiveResource 类 以便它们包含将类序列化为对初始 XSD 有效的 xml 的方法 我知道soap4r有xsd2ruby 但似乎生成的ruby类无法轻松序列化为xml 无耻
  • Android:滚动后 RecyclerView 内容混乱[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我使用 RecyclerView 来显示标记列表 并且值的每个标记都显示为 CardView 但是在RecyclerVi
  • Google 地图 v3 与 MeteorJS 加载同步问题

    我的应用程序在 MeteorJS 框架上运行并使用谷歌地图 javascript api v3 谷歌地图加载方案类似于此中解释的方案post https stackoverflow com a 16797219 942899 和官方的很相似
  • 如何创建 .chartForegroundStyleScale 的动态输入

    在 Swift Charts 中 签名为chartForegroundStyleScale为每个数据系列设置 ShapeStyle 的方法是 func chartForegroundStyleScale
  • 如何在Jenkins中设置环境变量?

    我希望能够做类似的事情 AOEU echo aoeu 并让詹金斯设置AOEU aoeu The 环境变量詹金斯的部分没有这样做 相反 它设置AOEU echo aoeu 如何让 Jenkins 评估 shell 命令并将输出分配给环境变量
  • Elasticsearch 对具有部分边缘 ngram 补全的数组字段的搜索建议

    我正在尝试根据文档中的字符串数组构建一个建议器 它类似于this one https stackoverflow com questions 20789224 elasticsearch autocomplete search on arr
  • 使用自动配置时,Windows 实际上如何检测 LAN(代理)设置

    When Windows Internet 属性 gt 连接 gt LAN 设置 gt 自动配置被设定为 自动检测设置 Windows 实际上如何确定 发现设置是什么 它是网络广播还是对注册表中某处配置的服务器的某种有针对性的查询 还是其他
  • iOS8 委托方法中的 nil 对象 - 自定义键盘

    我正在构建一个自定义键盘 我正在我的中实现以下委托方法InputViewController 但我总是得到 textInput nil void textWillChange id