iOS 13.0废弃'keyWindow'的解决方法

选中文字可对指定文章内容进行评论啦,绿色背景文字可以点击查看评论额。

使用In Xcode 11 beta 4,提示keyWindow已经被iOS 13.0废弃:

'keyWindow' was deprecated in iOS 13.0: Should not be used for applications that support multiple scenes as it returns a key window across all connected scenes

解决方法

方法一:

UIApplication.shared.windows.filter {$0.isKeyWindow}.first

或者:

UIApplication.shared.windows.first { $0.isKeyWindow }

方法二:

let keyWindow = UIApplication.shared.connectedScenes
        .filter({$0.activationState == .foregroundActive})
        .map({$0 as? UIWindowScene})
        .compactMap({$0})
        .first?.windows
        .filter({$0.isKeyWindow}).first

使用:

keyWindow?.endEditing(true)

 

版权声明:著作权归作者所有。

相关推荐

Java :Observer和Observable废弃原因及解决方案

Observer和Observable在Java 9标记为废弃。废弃原因Observer和Observable有几个原因:1、不能序列化Observable没有实现Serializable接口,它的内部成员变量都是私有的,子类不能通过继承它来对Observable的成员变量处理。所以子类也不能序列化。参考:Why is java.util.Observable&nbs

iOS11固定UISearchBar在导航栏的高度

iOS 11重新设计了UISearchBar,四个角改为圆角,高度变大。在导航栏添加搜索框可能会导致导航栏高度变大,所以有必要固定UISearchBar的高度。固定搜索栏的高度为44let searchBar = UISearchBar()  //配置searchBar相关代码 navigationItem.titleView =&nbs

Xcode支持多个版本iOS的设备调试

要Xcode支持多个版本iOS设备调试,需要添加设备支持包。路径/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/为支持包所在的文件夹:添加设备支持包后,重启Xcode即可。百度网盘:iOS设备支持包注意:调试最新的iOS版本建议升级Xcode到相应的版本,如Xcode 

解决升级到iOS 11后UIBarButtonItem图片变形的问题

在iOS 10使用UIBarUbttonItem图片显示正常,升级到iOS 11后,图片拉伸变形。这个原因是从iOS 11开始,UIBarButtonItem使用了autolayout 而不是frame。解决方法是,对UIBarButtonItem里的图片按钮添加约束。例如(swift):button.widthAnchor.constraint(equalToCon

IOS实现TouchID和FaceID

IOS TouchID或FaceID核心实现1.#import <LocalAuthentication/LocalAuthentication.h> 2.创建LAContext实例context3.配置context的localizedFallbackTitle,为验证失败后的撤销操作4.主要实现context的两个方法: (1)- (BOOL)canEvaluatePo

MySQL使用NOT IN存在null值导致结果错误的解决方法

house表:create table house (address varchar(200) not null, heating varchar(50));表中有两个字段,address地址,不能为null,凉爽程度heating 可以为null。插入记录:insert into house values ('A', null),('B','hot');in查询语句:select address

git bash配置代理解决下载慢的方法

首先找到一个代理服务地址,也可以使用shadowsocks,蓝灯。假设本地使用了蓝灯,http(s)代理地址为:127.0.0.1:52427。Git配置代理>git config http.proxy http://127.0.1:52427 >git config https.proxy https://127.0.1:52427Git设置为全局代理git config --glo

session共享解决方案

用户通过浏览器访问服务器的时候,服务器会自动产生session,用来存放用户信息,登录信息等内容,在分布式的系统中,如何保证session的一致性呢? 方法一:session同步 这个很好解释,也就是每新生成一个session,我们都把他同步到所有的服务器上面,这样每台服务器都有所有用户的session了,这是一种解决方法 优点:实现思路简单 缺点: 占用带宽,也就是每次

iOS获取Wifi列表详解

iOS 申请获取 Wifi 列表权限    iOS 上获取 Wifi 列表其实也有很大限制,在 iOS 9 以前是不能获取Wifi列表的,只能获取当前连接的 Wifi 信息,也就表示只有连接了 Wifi 才能定位,刚才文章说到的场景是,我在一个陌生的原理,拿出手机扫描 Wifi ,也就是我并没连接那里的 Wifi(我不知道密码我怎么连啊)。Apple 在 iOS 9 以后,提

解决Android Studio 出现 unable to access android sdk add-on list的方法

出现这个提示的原因主要是因为电脑第一次安装 Android Studio,启动后 Android Studio 没有检测到电脑有 SDK ,所以才有这个提示,unable to access android sdk add-on list下面说一下解决方法:解决方法如果是 windows 系统,在 Android Studio 的安装目录下,找到 binidea.properties 文件。如果是

Ubuntu禁用systemd-resolved的方法

1、禁用并停止systemd-resolved的服务:sudo systemctl disable systemd-resolved.servicesudo systemctl stop systemd-resolved2、在/etc/NetworkManager/NetworkManager.conf文件的[main]中添加下面一行:dns=default3、删除链接:/etc/resolv.c

Spring boot maven打包后文件变大原因以及解决方法

在一个Spring boot项目中,添加了一些zip压缩文件。在开发过程中,从项目中下载的文件能够正常打开。但一旦打成jar包后,下载的zip包就打不开了。原因定位查看下载的zip压缩包,我们发现下载的zip文件要比我们原来的要大。所以我们怀疑是spring boot打包导致。通过查找相关资料,原因是我们在maven打包资源是设置了filtering。示例:<resource> &l