Objective c OSX自定义授权插件因升级到Mojave而中断
我们有一个针对OSX的自定义授权插件,使用它作为基础编写: 并在需要时参考官方文件: 在Mojave发布之前,该插件一直工作正常。使用Mojave,我们的auth插件UI不会绘制,我们只看到圆形登录箭头按钮。登录的唯一方法是ssh到机器中,卸载auth插件并重新启用默认的OSX登录机制 我们添加了额外的日志记录,发现插件确实正在加载并正常运行。只是UI不再显示了。我的猜测是,他们已经更改了自定义身份验证插件的一些要求,但没有更新文档 有人知道为什么UI可能没有在Mojave中显示吗 编辑: 更多信息。我们已经发现,我们能够通过标签的控制,是我们的插件的一部分。这意味着控件实际上在那里,但不是在屏幕外,就是没有被绘制?真的很奇怪 编辑2: 我尝试构建NameAndPassword示例,它在Mojave中显示良好。这个示例使用了一个.nib作为接口,我无法在最新版本的xcode中编辑它。因此,我尝试将界面重新创建为.xib,令人惊讶的是,名称和密码的UI现在也消失了Objective c OSX自定义授权插件因升级到Mojave而中断,objective-c,macos,plugins,authorization,macos-mojave,Objective C,Macos,Plugins,Authorization,Macos Mojave,我们有一个针对OSX的自定义授权插件,使用它作为基础编写: 并在需要时参考官方文件: 在Mojave发布之前,该插件一直工作正常。使用Mojave,我们的auth插件UI不会绘制,我们只看到圆形登录箭头按钮。登录的唯一方法是ssh到机器中,卸载auth插件并重新启用默认的OSX登录机制 我们添加了额外的日志记录,发现插件确实正在加载并正常运行。只是UI不再显示了。我的猜测是,他们已经更改了自定义身份验证插件的一些要求,但没有更新文档 有人知道为什么UI可能没有在Mojave中显示吗 编辑: 更多
因此,当编译.xib文件时,可能会在幕后发生一些事情,这导致无法绘制UI,而基于.nib的界面不会发生这种情况。是否启用了此标志:self.window?.canBecomeVisibleWithoutLogin=true在Mojave上对我很好。我在登录视图中有一个自定义按钮,它显示并捕获单击事件fine。我在虚拟机上试过,但不认为在真正的硬件上会有什么不同。顺便说一句,我在Mojave的干净安装上进行了测试,而不是在macOS的早期版本上进行升级。你有没有找到解决方案?我遇到了完全相同的问题,观察到了您在EDIT和EDIT2中提到的相同内容。我们确实找到了解决方案,但没有给出解释。我所做的只是调整窗口的大小,使它变小,突然所有的东西都出现了。我还没有弄明白或读到任何尺寸限制,但无论如何,这就是它对我们有用的原因。@ChrisGiles谢谢!我根据您的发现做了一些测试,发现我的designable.nib的宽度需要小于大约395才能正确渲染。否则,它将不会显示。我发现窗户的高度没有限制。请不要将其他问题作为回答,而是作为评论。