objective-c - Cocoa 统一(登录)窗口

标签 objective-c cocoa nswindow

如何制作一个像下面屏幕所示的窗口?正如您所看到的,标题栏与窗口合并了。

enter image description here

顺便说一句,有谁知道有一个好的开源应用程序具有这种登录窗口,以便我可以检查它,并且还可以找到一些用于用户名/密码字段和按钮的良好替代 UI 元素。

最佳答案

如果您使用 INAppStoreWindow,您可以在屏幕截图中复制窗口的效果。由于屏幕截图中的窗口在登录字段和新帐户部分之间有清晰的分隔,因此您可以使用 INAppStoreWindow 的功能来绘制比正常情况大得多的标题区域。

这将允许您将登录字段放置在窗口的“标题”区域中,并将新帐户项目放置在窗口的正常区域中。

使用 INAppStoreWindow,您可能希望在界面生成器中创建一个单独的 View ,该 View 将作为包含登录字段的标题栏 subview 添加。然后,您将使用自定义标题绘图 block 来绘制从窗口顶部到登录自定义 View 底部的渐变。

您还想禁用“流量控制”按钮的垂直居中(关闭、最小化、缩放)。要实现自定义控件的外观,您只需将样式直接绘制到窗口中,然后使用无边框控件,这将为您提供文本字段所需的样式。对于按钮,您需要创建自定义子类以按照您想要的样式绘制它们。

对于窗口的底部,您可以在窗口 View 子类的 drawRect: 方法中绘制渐变。

https://github.com/indragiek/INAppStoreWindow您可以在其中找到 INAppStoreWindow,我建议您阅读文档。这个窗口子类将完全允许您在屏幕截图中创建窗口样式!

祝你好运! :)

关于objective-c - Cocoa 统一(登录)窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21384514/

相关文章:

cocoa - NSFileManager 删除目录内容

macos - 覆盖 NSWindow 关闭按钮

ios - 从 AppDelegate 中检索最新版本的组件失败

ios - 从设备中删除本地 icloud 文件?

iphone - 核心数据。 ExecuteFetchRequest 出现故障 NSManagedObject(不在 RAM 中)

macos - 如何从 NSView 或 NSWindow 创建 AXUIElementRef?

objective-c - NSMutableArray 拒绝运行

swift - 在 OS X 10.11 上使用 "canBecomeVisibleWithoutLogin"和 Swift 使窗口在登录窗口上可见

objective-c - 带圆角和阴影的 NSWindow

objective-c - 将 GLKViewController 添加到 subview - GLKView 上下文导致崩溃