我的桌子中有很多控制台分散在我的桌子中,我想知道是否有一种更简单的方法来解除键盘,而不必遍历所有控件并将它们全部作为第一响应者重新签名.我想这个问题是..我如何才能获得键盘当前的第一响应者?
我在一周前提交了我的应用程序,今天收到了可怕的拒绝电子邮件.它告诉我我的应用程序无法被接受,因为我使用的是非公共API; 具体来说,它说,
应用程序中包含的非公共API是firstResponder.
现在,违规的API调用实际上是我在SO上找到的解决方案:
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
UIView *firstResponder = [keyWindow performSelector:@selector(firstResponder)];
Run Code Online (Sandbox Code Playgroud)
如何在屏幕上显示当前的第一响应者?我正在寻找一种不会让我的应用被拒绝的方法.
一切正常,直到我使用Xcode 7.3.0构建我的cordova应用程序,但是只要我在使用Xcode 8构建相同的应用程序时,只要我将方向从Portrait更改为Landscape,它在iOS 10设备上开始崩溃,因为它在iOS上仍能正常工作9.3.1.在调试器中,我得到以下日志:
Run Code Online (Sandbox Code Playgroud)2016-09-24 18:14:41.212470 MyApp[2542:1028606] [Common] _BSMachError: port 1607; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND" 2016-09-24 18:14:41.613460 MyApp[2542:1028606] [Common] _BSMachError: port 1607; (os/kern) invalid name (0xf) "Unable to insert COPY_SEND" 2016-09-24 18:14:41.613947 MyApp[2542:1028606] [Common] _BSMachError: port 1607; (os/kern) invalid name (0xf) "Unable to insert COPY_SEND" 2016-09-24 18:14:41.614469 MyApp[2542:1028606] [Common] _BSMachError: port 1607; (os/kern) invalid name (0xf) "Unable to deallocate send right" Message from debugger: Terminated due to memory issue
下面是堆栈跟踪
警告:无法从dyld共享缓存加载任何Objective-C类信息.这将显着降低可用类型信息的质量.
Run Code Online (Sandbox Code Playgroud)* …
今天我试着在我的iPod(iOS 6.1.3)上运行我的代码,我在这里发现了一些有趣的东西......
首先,当我点击文本字段时,键盘会显示,但当我点击文本字段外的其他位置时,它不会隐藏.
所以我决定使用Google搜索并找到了这个解决方案:
_fieldEmail.delegate = self;
_fieldEmail.returnKeyType = UIReturnKeyDone;
_fieldPassword.delegate = self;
_fieldPassword.returnKeyType = UIReturnKeyDone;
_fieldRegisterName.delegate = self;
_fieldRegisterName.returnKeyType = UIReturnKeyDone;
_fieldRegisterEmail.delegate = self;
_fieldRegisterEmail.returnKeyType = UIReturnKeyDone;
_fieldRegisterPassword.delegate = self;
_fieldRegisterPassword.returnKeyType = UIReturnKeyDone;
Run Code Online (Sandbox Code Playgroud)
它有效...它在键盘底部给出一个"完成"按钮,现在可以通过按下它来隐藏键盘.
但我这里有两个问题:
这就是我需要知道的