将 self 分配给 UITextFieldDelegate 在 iOS 8 中而不是在 iOS 7 中工作
Posted
技术标签:
【中文标题】将 self 分配给 UITextFieldDelegate 在 iOS 8 中而不是在 iOS 7 中工作【英文标题】:Assign self to UITextFieldDelegate works in iOS 8 not in iOS 7 【发布时间】:2014-10-18 10:06:42 【问题描述】:过去我已经多次对 UITableView 和 UICollectonView
进行子类化,其中我将 self 分配给委托和数据源,并且效果很好。
今天我尝试创建UITextField
的子类,并且我将 self 分配给它的代表
self.delegate = self
委托继承自UITextFiled
。
在上述情况下,这会在 ios 7 中永远挂起应用程序,但适用于 iOS 8。
另一个令人惊讶的事情是,当我尝试从硬件键盘输入文本时,它可以正常工作,但它会在从屏幕键盘输入字符时挂起。
这可能是什么原因,谁能帮我理解一下?
【问题讨论】:
我很想知道您是否找到了这个问题的答案,甚至可以解决这个问题。我有一个类似的问题,我看到没有人在这篇文章上帮助你。我希望你能明白!这是我的问题:***.com/questions/28241104/… 【参考方案1】:我遇到了类似的问题,我想通了。默认情况下,模拟器不会再抬起键盘。如果有可用且可检测到的硬件键盘(例如在 MacBook 上),模拟器将寻找其中的输入,而模拟的 iPhone 键盘将不会启动。这使代理出现问题。您所要做的就是在模拟器的硬件菜单中,在键盘下,取消选择“连接硬件键盘”选项。我希望这有帮助。
【讨论】:
以上是关于将 self 分配给 UITextFieldDelegate 在 iOS 8 中而不是在 iOS 7 中工作的主要内容,如果未能解决你的问题,请参考以下文章
将 self 分配给 UITextFieldDelegate 在 iOS 8 中而不是在 iOS 7 中工作