CN112835669A - 一种麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法 - Google Patents
一种麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法 Download PDFInfo
- Publication number
- CN112835669A CN112835669A CN202110168485.5A CN202110168485A CN112835669A CN 112835669 A CN112835669 A CN 112835669A CN 202110168485 A CN202110168485 A CN 202110168485A CN 112835669 A CN112835669 A CN 112835669A
- Authority
- CN
- China
- Prior art keywords
- full
- window
- floating window
- screen
- class
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法,包括如下步骤:步骤1:创建应用程序代理类AppDelegate;步骤2:创建全屏浮动窗口,具体包括:使用窗口类NSWindow创建全屏浮动窗口;使用面板类NSPanel对全屏浮动窗口进行初始化操作;设定全屏浮动窗口的层级,并保持该全屏浮动窗口始终在一个高层级上;步骤3:运行应用程序App。本发明使创建的窗口可以悬浮在任意一个全屏窗口之上,用户体验好,可用于麦金塔Mac操作系统OS X中弹窗等功能的实现,满足个性化、差异化的交互界面设计及使用需求。
Description
技术领域
本发明涉及图像(图形)显示技术领域,具体说是一种麦金塔Mac电脑操作系统OSX下创建全屏浮动窗口的方法。所述麦金塔Mac指苹果电脑(曾被译为麦金塔电脑,即麦金塔Macintosh的音译),运行麦金塔Mac电脑操作系统OS X(苹果公司为麦金塔电脑开发的专属操作系统)。
背景技术
目前实现全屏浮动窗口的方法,只能把浮动窗口所属的应用程序设置成后台程序。这种方法的缺点如下:
1)应用程序无法到前台运行。
2)会导致菜单无法隐藏。
显然,现有的创建全屏浮动窗口的方法难以满足用户的需求,难以达到较为理想的全屏浮动窗口的效果。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法,基于窗口类NSWindow和面板类NSPanel,使窗口可以悬浮在任意一个全屏窗口之上,用户体验好。
实现本发明目的的具体技术方案是:
一种麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法,特点是该方法包括如下步骤:
步骤1:创建应用程序代理类AppDelegate,创建应用程序类NSApplication;
步骤2:使用窗口类NSWindow来创建全屏浮动窗口,并初始化全屏浮动窗口设定,具体包括:
使用面板类NSPanel对所述全屏浮动窗口进行初始化操作;
设定所述全屏浮动窗口的样式掩码StyleMask;
设定所述全屏浮动窗口在集合行为CollectionBehavior;
设定所述全屏浮动窗口的层级为一个高层级;
保持所述全屏浮动窗口的层级为一个高层级;
步骤3:运行应用程序App。
在步骤2中,所述样式掩码StyleMask为特定值;使浮动窗口浮动在其他应用程序上面时能够不激活浮动窗口所属的应用程序。
所述特定值是指设定窗口类NSWindow的样式掩码StyleMask为窗口类样式有标题栏NSWindowStyleMaskTitled,所述浮动窗口需要显示标题栏和窗口类样式不激活面板NSWindowStyleMaskNonactivatingPanel。
在步骤2中,所述集合行为CollectionBehavior为特定值;使浮动窗口能够浮动在其他全屏窗口的上面。
所述特定值是指使用设定窗口集合行为函数setCollectionBehavior设定窗口类NSWindow的集合行为CollectionBehavior的值为窗口类集合行为可加入所有空间NSWindowCollectionBehaviorCanJoinAllSpaces,所述浮动窗口可出现在所有工作空间workspace和值为窗口类集合行为全屏NSWindowCollectionBehaviorFullScreenAuxiliary,所述浮动窗口可与其他全屏窗口共享一个工作空间。
在步骤2中,所述窗口的层级为一个高层级,使浮动窗口能够不被其他全屏窗口覆盖。
所述一个高层级是指使用设定层级函数setLevel设定窗口类NSWindow的层级为一个高层级,一个高层级表示其层级值高于在状态栏窗口层级NSStatusWindowLevel。
所创建的浮动窗口所属的应用程序是前台应用程序或者是后台应用程序。
本发明的背景支持不限于以下背景颜色:
默认白色,
透明显示,
具体颜色可根据实际设计场景需要自定义调整。
本发明所述的麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法, 基于窗口类NSWindow和面板类NSPanel,使窗口可以悬浮在任意一个全屏窗口之上,用户体验好,可用于麦金塔Mac操作系统OS X中弹窗等功能的实现,满足个性化、差异化的交互界面设计及使用需求。
附图说明
图1 本发明实现的全屏浮动窗口效果示意图;
图2 本发明的流程框图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
参阅图1-2,本发明所述的一种麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法,包括如下步骤:
步骤1,创建应用程序代理类AppDelegate,使用默认参数分配内存空间和初始化。创建应用程序类NSApplication,使用默认方式初始化,并使用设置该应用程序代理为上面创建的应用程序代理。
步骤2,初始化窗口设定,具体包括:
使用窗口类NSWindow创建一个窗口,并使用面板类NSPanel初始化设定该全屏浮动窗口。
在麦金塔Mac操作系统OSX中,一个应用程序所属的窗口被激活activate可能会导致应用程序被激活,因此在初始化窗口时要设定样式掩码StyleMask。
初始化过程可参照下面代码段,首先调用设定该全屏浮动窗口的样式掩码StyleMask。具体设定参数为该全屏浮动窗口需要显示标题栏NSWindowStyleMaskTitled和不激活该全屏浮动窗口所属的应用程序NSWindowStyleMaskNonactivatingPanel。其中窗口类NSWindow的该全屏浮动窗口显示标题栏样式掩码该全屏浮动窗口需要显示标题栏NSWindowStyleMaskTitled用于设定该全屏浮动窗口的标题栏titleBar,可根据实际需求调整该设置。
NSRect frame;
// 调整全屏浮动窗口的位置数据
frame.origin.x = 200;
frame.origin.y = 200;
// 调整全屏浮动窗口的宽高数据
frame.size.width = 100;
frame.size.height = 100;
// 创建窗口
NSWindow* window =
[[NSPanel alloc]
initWithContentRect:frame
// 设置样式掩码StyleMask
styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskNonactivatingPanel
// 设置窗口背景绘制方式
backing:NSBackingStoreBuffered
// 设置窗口是否立刻绘制
defer:YES];
设定窗口类NSWindow的集合行为CollectionBehavior。具体方式是使用设定窗口集合行为函数setCollectionBehavior设定窗口类NSWindow的集合行为CollectionBehavior的值为该全屏浮动窗口可出现在所有空间NSWindowCollectionBehaviorCanJoinAllSpaces和该全屏浮动窗口可与其他全屏窗口共享一个空间NSWindowCollectionBehaviorFullScreenAuxiliary。具体实现可参考以下代码段:
[window setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces | NSWindowCollectionBehaviorFullScreenAuxiliary];
设定窗口类NSWindow的层级为一个高层级。具体方式为使用设定层级函数setLevel设定窗口类NSWindow的层级为一个高层级,一个高层级的层级只要保证在状态栏窗口层级NSStatusWindowLevel 之上即可。具体实现可参考以下代码段:
[window setLevel:CGShieldingWindowLevel()];
保持窗口类NSWindow的层级为一个高层级。具体方式为使用同层级最前函数orderFrontRegardless保持窗口类NSWindow的层级为一个高层级。具体实现可参考以下代码段:
[window orderFrontRegardless];
步骤3,运行应用程序App。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (8)
1.一种麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法,其特征在于,包括如下步骤:
步骤1:创建应用程序代理类AppDelegate,创建应用程序类NSApplication;
步骤2:使用窗口类NSWindow来创建全屏浮动窗口,并初始化全屏浮动窗口设定,具体包括:
使用面板类NSPanel对所述全屏浮动窗口进行初始化操作;
设定所述全屏浮动窗口的样式掩码StyleMask;
设定所述全屏浮动窗口在集合行为CollectionBehavior;
设定所述全屏浮动窗口的层级为一个高层级;
保持所述全屏浮动窗口的层级为一个高层级;
步骤3:运行应用程序App。
2.如权利要求1所述的麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法,其特征在于,在步骤2中,所述样式掩码StyleMask为特定值,使全屏浮动窗口浮动在其他应用程序上面时能够不激活全屏浮动窗口所属的应用程序。
3.如权利要求1所述的麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法,其特征在于,在步骤2中,所述集合行为CollectionBehavior为特定值,使浮动窗口能够浮动在其他全屏窗口的上面。
4.如权利要求1所述的麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法,其特征在于,在步骤2中,所述全屏浮动窗口的层级为一个高层级,使浮动窗口能够不被其他全屏窗口覆盖。
5.如权利要求1所述的麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法,其特征在于,所创建的浮动窗口所属的应用程序是前台应用程序或者是后台应用程序。
6.如权利要求2所述的麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法,其特征在于,所述特定值是指设定窗口类NSWindow的样式掩码StyleMask为窗口类样式有标题栏NSWindowStyleMaskTitled,所述全屏浮动窗口需要显示标题栏和窗口类样式不激活面板NSWindowStyleMaskNonactivatingPanel。
7.如权利要求3所述的麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法,其特征在于,所述特定值是指使用设定窗口集合行为函数setCollectionBehavior设定窗口类NSWindow的集合行为CollectionBehavior的值为窗口类集合行为可加入所有空间NSWindowCollectionBehaviorCanJoinAllSpaces,所述全屏浮动窗口可出现在所有工作空间workspace和值为窗口类集合行为全屏NSWindowCollectionBehaviorFullScreenAuxiliary,所述浮动窗口可与其他全屏窗口共享一个工作空间。
8.如权利要求4所述的麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法,其特征在于,所述一个高层级是指使用设定层级函数setLevel设定窗口类NSWindow的层级为一个高层级,一个高层级表示其层级值高于在状态栏窗口层级NSStatusWindowLevel。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110168485.5A CN112835669A (zh) | 2021-02-07 | 2021-02-07 | 一种麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110168485.5A CN112835669A (zh) | 2021-02-07 | 2021-02-07 | 一种麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112835669A true CN112835669A (zh) | 2021-05-25 |
Family
ID=75932657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110168485.5A Pending CN112835669A (zh) | 2021-02-07 | 2021-02-07 | 一种麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112835669A (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450925A (zh) * | 2017-07-31 | 2017-12-08 | 北京酷我科技有限公司 | 一种Mac下自定义弹窗控件的方法 |
-
2021
- 2021-02-07 CN CN202110168485.5A patent/CN112835669A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450925A (zh) * | 2017-07-31 | 2017-12-08 | 北京酷我科技有限公司 | 一种Mac下自定义弹窗控件的方法 |
Non-Patent Citations (1)
Title |
---|
ELSONPENG: ""MasOS如果在全屏模式(专注模式)下的应用上层再显示一个窗口"", 《CSDN》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106941563B (zh) | 一种移动终端刷新率的控制方法、装置及移动终端 | |
AU2017204611B2 (en) | Widget setting method and terminal device | |
US5619639A (en) | Method and apparatus for associating an image display area with an application display area | |
CN106484396B (zh) | 夜间模式切换方法、装置和终端设备 | |
US20140092006A1 (en) | Device and method for modifying rendering based on viewer focus area from eye tracking | |
CN111443863A (zh) | 页面操控方法、装置、存储介质及终端 | |
US20030142139A1 (en) | Automatic window representation adjustment | |
CN103530018A (zh) | 安卓操作系统中微件界面的建立方法及移动终端 | |
CN102681853B (zh) | 一种利用OpenGL ES实现安卓操作系统桌面3D转屏的方法及装置 | |
CN101834938A (zh) | 一种实现移动终端横竖屏切换的装置及方法 | |
CN104216752A (zh) | 一种基于窗口的信息加载方法及装置 | |
CN109542376B (zh) | 屏幕的显示调节方法、装置和介质 | |
CN110502205B (zh) | 图片显示边缘处理方法、装置、电子设备和可读存储介质 | |
CN110928614B (zh) | 界面显示方法、装置、设备及存储介质 | |
CN101764971B (zh) | 一种在屏显示装置及其在屏显示方法 | |
CN103309616A (zh) | 软键盘的显示方法和终端 | |
CN103679777A (zh) | 一种页面遮罩的实现方法及装置 | |
JP5907196B2 (ja) | 画像処理装置、画像処理方法、画像処理システムおよびプログラム | |
KR20040047413A (ko) | 그래픽방식에 의한 2d 캐드파일 비교 방법 | |
CN113920958A (zh) | 显示屏亮度的调节方法、系统、电子设备和介质 | |
CN102056022A (zh) | 一种操作系统在机顶盒中的应用方法、装置及机顶盒 | |
CN105487868B (zh) | 实现安卓设备虚拟按键隐藏和显示的方法和系统 | |
CN104238906A (zh) | 一种信息处理方法以及电子设备 | |
CN112835669A (zh) | 一种麦金塔Mac电脑操作系统OS X下创建全屏浮动窗口的方法 | |
CN113886110A (zh) | 外挂式视频插件窗口嵌入到浏览器的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210525 |