这里的Window指的是左上角有扩大缩小关闭按钮的窗口。 通过Main.storybord的箭头导向,指向的是主Window,然后将第一个页面指向为ViewController。...我们一般在ViewController内管理我们自己的View 可以通过代码的方式自定义WindowController和ViewController - (void)applicationDidFinishLaunching...APP最重要的UI,因为沙盒APP都要显示在这里。...*mainMenu; // 状态栏图标点击后的菜单显示 状态栏图标的配置 - (void)customStatusItem{ _statusItem = [[NSStatusBar systemStatusBar...将获取到的信息,自定义一个NSMenuItem插入到mainMenu里,如下显示 点击跳转到沙盒目录 - (void)openAppDocument:(ApplicationMenuItem *)menu
图片来自Apple官方 在macOS 10.14中,苹果在系统本身样式(Light (aqua) appearance )基础上推出了暗黑模式(dark appearance),这种模式下可以更突出显示应用窗口中的内容...,让用户的关注焦点聚集在App本身的视图中以便获取更佳的视觉体验.关于AppKit中的系统视图,苹果默认已经进行了暗黑模式适配升级,但对于许多自定义的View,还是需要我们花一点点时间处理的. 0x00...contrast (高对比度): 使图片与周边的内容对比根据突出,仅能用于macOS10.14+之后的版本 Template Images 使用模版图片也是一种常用的适配解决方案,典型的案例就是设置控件的...icon(比如一个播放或者暂停的按钮).这种方法需要配合使用图片编辑软件(项目中的话通常就是UI设计师来处理)制作图片模版,具体使用仅需两个步骤即可: UI设计师需要根据场景设计图片,但需要遵守如下规则...中的代码进行图片创建,从而实现适配效果; 0x03: 自定义View 适配(NSView) 当改变当前的appearance时,AppKit会自动调用NSView的下面几个方法(根据情况调用) updateLayer
的圆角 解决 Xib 无法显示自定义控件从 Xib 加载的问题。...我们之前封装的 SideMenuItemView似乎不太适合我们这里的按钮,如果只是显示文字我们还需要还需要隐藏前面的 NSImageView,我们按钮直接用系统的 NSButton。...新建文章的标题可以自定义 搜索标题可以自定义 按钮的事件可以自定义 搜索事件可以自定义 我们在 ContentHeaderValue1关联一下 Label可以让外接设置 Label的文字。...为了可以获取到我们 Header的元素,我们需要新增一个方法用于获取 ContentHeader上面自定义控件。 var headerContent:NSView?...B2E036CF-433D-42AE-8D63-91ACC6527355 貌似只是文章显示出来了,我们的按钮和搜索框并没有出现。
上面两种思路中第2种要更好一些,我们可以服用系统的功能按钮,即关闭、最小化和最大化按钮。 ...首先,现在Window的contentView中添加一个自定义的View,作为标题栏视图,View上可以添加图标或任意自定义的功能按钮。如下: ?...]; //获取到windows的主视图 NSView * themeView = self.window.contentView.superview; //根据层级结构获取到标题栏视图 NSView...* titleView = themeView.subviews[1]; titleView.autoresizesSubviews = YES; //重新对标题栏视图的尺寸进行布局,使得系统的功能按钮出现在自定义标题中的竖直中间...,这样是为了让系统的3个功能按钮显示在自定义标题栏的中间,但是当用户使用全屏功能进行全屏与非全屏切换时,系统会对标题栏的尺寸进行重新布局,将功能按钮放回原来的位置,为了避免这样的问题,可以监听用户全屏切换事件
以列标题视图的宽度为标准 - (void)sizeToFit; //提供了这个属性,会在列标题那里显示一个排序按钮 点击列标题后可以进行排序操作(会回调相关协议方法) @property (nullable...tableView shouldReorderColumn:(NSInteger)columnIndex toColumn:(NSInteger)newColumnIndex; //设置某行向左或向右滑动时要显示的功能按钮...会被列头图就行覆盖 @property (nullable, strong) NSTableHeaderView *headerView; //设置头图右侧视图 可以自定义图标 @property (...)row makeIfNecessary:(BOOL)makeIfNecessary; //获取某个View所在的行 用于view-base - (NSInteger)rowForView:(NSView...*)view; //获取某个View所在的列 用于view-base - (NSInteger)columnForView:(NSView *)view; //创建一个用于渲染的View 用于view-base
自己几乎所有的项目都是用的全代码,但是平时demo和一些小工具还是用上可视化试图和最新语言Swift. 做到是一个mac程序,几个界面基本上的功能按钮都是一样的。就封装了一个类,用上了xib。...但是拖拽一个NSView,继承与我们刚才的自定义试图,运行发现出不来我们XIB界面。 我自己分析了一下原因,虽然我们让XIB的类指向我们自己自定义试图,但是关联不起来试图。...新建一个OToolBarView类继承于NSView. class OToolBarView: NSView { } 因为Storyboard不允许直接拖拽NSView,允许我们拖拽NSViewController...还有这个类型AutoreleasingUnsafeMutablePointer应该像Object-C的自定义释放的类型。以后研究一下这个类型。...(coder: NSCoder) { super.init(coder: coder) self.loadNibView() } 我们运行之后就可以显示出来了。
⛔️这里遇到了一个棘手的问题,如果使用 NSTableHeaderView的子类,在 Draw绘制虽然颜色是设置了,但是标题已经被覆盖掉了。...30CFC0BB-A3E7-4599-A0D5-02F9B82C36BF NSView如何 sizeThatFits: 为了让标题显示完全,我们绑定一下设定宽度的约束。...设置 ActionTableCellView中按钮的宽度都为 100。 我们给 DateTableCellView连接 label的属性用于设置时间。...我们新建一个 GetPostListApi类用于获取文章页列表。 我们新建一个类 PostDetail用于显示文章的信息详情。...OSX平台代码打开一个地址 我们做完 删除功能,还剩下一个 查看功能,当用户点击 查看按钮。 我们给 ActionTableCellView新增一个方法用于配置 查看按钮的点击方法。
,然后挂接到macOS系统的窗口服务(接收事件)和显示服务(显示内容)中....一个窗口对象(NSWindow)处理窗口级别的事件(window-level events)以及将其他事件传递给窗口中的视图对象,同时一个NSWindow还允许通过它的delegate实现自定义窗口的行为方式...自身来处理,比如应用的隐藏/显示/激活状态/失去激活状态等....是通过调用NSView的hitTest:方法,根据这个方法的返回值(通常是显示在最顶层的View)来确定....key Window窗口中的一个(NSButton)按钮时,这个点击动作仅仅是将这个窗口(NSWindow)对象变成key Window而已,你还需要使用鼠标再次点击这个按钮,此时这个按钮才会接收到鼠标点击的事件
自定义的Present转场效果,可以通过自定义animator方式后面会讲到具体实现步骤> transition: 使用一个容器视图Contain View, 通过addSubView 和...从Storyboard中的CustomView 连线的控件属性,用来作为容器视图,显示每个ChildViewController的内容 @IBOutlet weak var containView...添加需要切换的子控制器: RedController 和BlueController 为自定义的两个控制器,仅显示不同的视图颜色....自定义present 动画时,需要注意事件穿透问题: 由于显示出来的控制器视图(Controller View)是通过addSubView方式添加到容器视图中,因此在控制器视图(Controller...View)上进行点击操作,可能会触发容器视图中控件(比如按钮)的方法 解决办法: 给容器视图添加一层背景视图(自定义的NSView, 重写mouseDown方法即可),通过背景视图屏蔽鼠标操作,防止事件穿透到容器视图中
Storyboard里面会自动创建一个菜单栏,你可以自行在菜单中进行增删改操作,菜单中的Item触发方法也可以直接与AppDelegate进行关联,实现自定义的菜单逻辑,如图: ?...三:Dock菜单 当一款Mac桌面软件运行时,会在Dock栏上显示一个图标,当在此图标上点击右键时,会出现一个Dock菜单,自定义此Dock菜单也十分容易,直接在AppDelegate中重写如下方法即可...四、视图右键弹出菜单 视图右键弹出菜单是基于NSView视图的,例如: - (void)viewDidLoad { [super viewDidLoad]; NSMenu * menu...NSEventModifierFlagHelp = 1 << 22, // 帮助键 NSEventModifierFlagFunction = 1 按钮...:(NSMenu*)menu withEvent:(NSEvent*)event forView:(NSView*)view withFont:(nullable NSFont*)font; - (BOOL
Classes AVCaptureView AVCaptureView是NSView的一个子类,可用于显示用于捕获媒体数据的标准用户界面控件。...AVContentProposalViewController AVContentProposalViewController是用于创建自定义内容提议演示文稿的UIViewController的子类...AVNavigationMarkersGroup AVNavigationMarkersGroup表示用于导航视听演示的回放的一组标记。...AVPlayerView AVPlayerView是一个NSView的子类,用于显示AVPlayer对象的可视内容,并提供标准的控件来管理其播放。...AVPlayerViewController AVPlayerViewController显示AVPlayer对象的视频内容以及系统提供的播放控件。
用户体验 索引期间可用于 Java 和 Kotlin 的 IDE 功能 现在,代码突出显示和补全等基本 IDE 功能可在项目索引期间适用于 Java 和 Kotlin,这应该会增强您的启动体验。...另外,我们更新了按钮及其行为以简化重构工作流程,并且现在可以通过键盘完全访问该对话框,这意味着您可以使用快捷键和箭头键进行无缝交互。...改进的基于编译器的突出显示 到目前为止,如果您在使用基于编译器的突出显示时切换到另一个编辑器,代码会自动重新编译。在版本 2024.1 中,我们对此进行了更改。...Git工具窗口 中*“历史记录”*选项卡 的分支过滤器 在Git工具窗口中,*“显示所有分支”*按钮已替换为分支过滤器,允许您查看对指定分支内的文件所做的更改。...如果覆盖率工具窗口中未显示任何报告,现在会出现用于导入 JaCoCo 报告的直接链接。我们还使用导入图标更新了窗口的工具栏,该图标允许您将 JaCoCo 报告作为.exec文件检索。
深色模式界面可以通过使用深色背景和减少浅色像素数量来帮助延长移动设备的电池寿命并降低笔记本电脑和台式显示器的能耗。 视觉焦点和注意力:您可以故意在网页上使用深色模式来突出显示特定的材料或方面。...CSS 变量(自定义属性) CSS 变量,也称为自定义属性,在实现深色模式中发挥着关键作用。通过定义颜色和其他样式属性的变量,我们可以轻松地在不同主题之间切换,而无需修改单独的 CSS 规则。...然后,我们创建一个暗模式类,在其中使用适合暗模式的值覆盖这些变量。 深色模式切换按钮 接下来,让我们创建一个切换按钮,允许用户在浅色模式和深色模式之间切换。...我们以“.dark-mode”类为目标元素,并覆盖之前定义的 CSS 变量。此外,我们使用“body”选择器将暗模式样式应用于网页上的所有元素。...设计师可以通过将黑暗模式无缝地融入到他们的设计中并强调可访问性考虑因素来开发包容性和用户友好的体验,以吸引不同的受众。
此外,它可以基于自定义语法文件扩展到其他编程语言。 用于预览 HTML 页面的无缝 Web 浏览器,以及用于将本地文件上传到 FTP 服务器的 FTP(也包括 sftp 和 FTPS)功能。...其他功能包括十六进制查看器、HTML 工具栏、用户工具、行号、标尺、URL 突出显示、自动完成、剪辑文本、列选择、强大的搜索和替换、多个撤消/重做、拼写检查、可自定义的键盘快捷键等。...此外,您可以创建自己的语法文件来支持其他编程语言。 互联网功能 无需离开编辑器即可预览 HTML 文档或 Java 小程序内容的无缝网络浏览器。...突出显示普通文本文件中的 URL 和电子邮件地址,并让您通过单次击键 (F8) 或“Ctrl + 双击”来激活它们。 Hex Viewer Hex Viewer 允许您以 Hex 模式显示当前文件。...Cliptext 窗口 cliptext 窗口是用于快速轻松访问的文本剪辑的集合。您可以轻松自定义它们,也可以创建自己的剪辑文本文件。 文档模板 文档模板可在您创建新文档时提供快速入门。
以下是一些常用的排版类: h1 到 h6:用于定义标题的样式,字号逐渐减小。 lead:用于设置引导文本的样式,通常用于突出重要信息。...text-left、text-center、text-right:用于文本的左对齐、居中对齐和右对齐。 text-muted:使文本显示为灰色,用于次要信息。...链接和按钮样式 链接和按钮是网页中的重要元素,Bootstrap 提供了一系列类,用于定义链接和按钮的样式。以下是一些常见的链接和按钮样式: btn:用于创建按钮样式。...btn-primary、btn-secondary、btn-success:用于定义不同颜色的按钮。 btn-sm、btn-lg:用于定义小号和大号按钮。 btn-link:用于创建文本链接。...为了创建自定义样式,您可以在项目中添加自己的 CSS 文件,并覆盖或扩展 Bootstrap 提供的样式。
enum OFileMagerImportError:Error { case cannel //点击了取消的按钮 case error(message:String) } 修改之前的读取配置的方法改成下面的代码...mac开发中使用自定义NSTableCellView 我们实现NSTableView的代理,先设置3条测试的数据。...我们自定义的NSTableCellView的类 class OHomeCellView: NSTableCellView { /// 显示配置的名称 @IBOutlet weak var..., row: Int) -> NSView?...cell } func tableView(_ tableView: NSTableView, heightOfRow row: Int) -> CGFloat { return 40 } 最后显示的效果
路径:布局选项卡 ➙ 页面颜色 页面编号格式: 轻松根据您的需求,自定义文本文档中的编号格式。 路径:页眉和页脚设置 ➙ 编号格式 无缝切换多种模式: 一键切换编辑、审阅或查看模式。...路径:保护 ➙ 保护范围 更方便地协作: 版本历史记录中被更改的单元格会被突出显示。...路径:幻灯片版式 动画窗格: 在时间轴上显示应用于幻灯片的动画效果。...– 西尔语本地化 (sr-Cyrl-RS) 可用性提升 可以隐藏或显示标题中保存、打印、撤消和重做功能按钮。...路径:自定义快速访问工具栏 为了更舒适的用户体验,重新设计并更新了一些界面元素: 复制样式、清除样式、全选和替换按钮位置有所变化(首页选项卡) 段落格式设置可通过布局选项卡和段落行距按钮打开
请参阅 图像大小和分辨率 和 自定义图标。 布局 在对 iPhone X 中的应用进行设计时,你必须确保布局能够填满屏幕,并且保证他们不会被设备的圆角、传感器外壳或者用于访问主屏幕的指示灯遮盖。 ?...所有的应用程序都应遵循 UIKit 中定义的安全区域和布局边距,这些区域可以根据设备和上下文进行适当的填充。安全区域还能够防止内容把状态栏、导航栏、工具栏和标签栏覆盖掉。 注意状态栏的高度。...人们可以使用显示屏底部的滑动手势来访问主屏幕和对应用程序进行切换,这些手势可能会覆盖掉你在此区域中设定的自定义手势。另外屏幕的两个角落令人很难进行有效操作。 不要遮挡或突出显示关键显示特性。...不要隐藏设备的圆角和传感器外壳,也不要通过在屏幕顶部和底部放置黑色条的方式来突出主屏幕的指示器。不要使用类似括号、边框、形状或文字之类的视觉装饰来引起人们对这些区域的注意。...在键盘的下方会自动显示Emoji/Globe 和 Dictation 按钮。你的应用程序并不能影响这些按钮,所以不要在你的自定义键盘中出现这些按钮,以免造成混乱。 请参阅 自定义键盘。
提供“取消”按钮,使人们可以重新考虑破坏性操作。“取消”按钮应出现在动作表单的底部。 突出显示破坏性选择。将红色用于执行破坏性或危险操作的按钮,并将这些按钮显示在动作表单的顶部。 避免让操作表滚动。...您还可以定义在给定的时间内显示哪些自定义任务。 使用“操作”按钮显示活动视图。人们习惯于点击“操作”按钮来访问系统提供的活动。用户习惯在点击“功能”按钮时弹出活动视图。...仅当用户点击取消按钮时才取消当前的任务。 在屏幕适当的位置显示浮层。浮层的箭头应尽可能直接指向触发它的元素。因为浮层不能在屏幕上拖动,所以浮层不能覆盖屏幕上太多内容。也不能覆盖触发它的元素。...对于显示列表视图的补充列,请使用普通边栏外观。这种外观适合于单个内容的列表,例如邮箱中的消息。 在主要和补充列中持续突出显示任务选择。...如果某行支持删除并且有助于提供清晰性,请将系统提供的删除标题替换为自定义标题。 在用户做出选择时给予相应的反馈。用户在与列表进行交互时,希望被点击的列表可以突出显示。
7大架构(Architecture) 架构是有关软件/系统整体流程、结构与组件的抽象描述,用于指导大型软件/系统各个方面的设计。iOS关于架构的指导原则分为7个如下的部分。...主动寻找和思考用户可能被卡住的地方。例如:游戏中在暂停或角色没有前进时显示一些有用的提示。让用户可以重播教程,以防第一次进入APP的他们错过任何内容。 突出教程中的要点。...为了在你的应用中呈现自定义的模态内容,iOS 13和更高版本支持以下两种表现风格: (一) 工作表(卡片弹窗) 工作表演示样式显示为一张卡片,并覆盖在页面上。未被覆盖的区域变暗显示,无法进行交互。...先前的视图已完全覆盖,从而最大程度地减少了视觉干扰。人们通过点击按钮来关闭全屏模式视图。...用户已经很熟悉这些控件了,这样能够让用户更轻松地使用你的APP。 使用导航栏贯穿层级结构。导航栏的标题可以显示层级结构中的当前位置,返回按钮可以轻松返回到上一位置。
领取专属 10元无门槛券
手把手带您无忧上云