最后更新:2017-12-19

在第一天中, 我们完成了项目的基本设置、隐藏Dock、显示和隐藏Popover等操作,接下来的这章中, Pap.er将会去搭建对应 UI.

一、设置Popover对应颜色

官方的Pap.er的箭头部分色值为RGB=(34, 34, 34)

查找官方的NSPopover API,发现没有设置对应和方法, 尝试更改ContentViewController.view, 但是也是没有对应的属性来设置, 通过 Stack Overflow, 可以更改颜色设置.

Step1: 新建一个继承于NSView的子类,命名为: MainPopoverRootView;

Step2: 再新建一个继承于NSView的子类,命名为: MainPopoverBackgroundView;

Step3: 对新建的 MainPopoverRootViewMainPopoverBackgroundView 分别做如下的设置:


// MainPopoverRootView
class MainPopoverRootView: NSView { override func viewDidMoveToWindow() {
let aFrameView = self.window?.contentView?.superview let aBGView = MainPopoverBackgroundView(frame: aFrameView?.bounds ?? .zero)
aFrameView?.addSubview(aBGView, positioned: .below, relativeTo: aFrameView)
aBGView.autoresizingMask = [.width, .height]
super.viewDidMoveToWindow()
}
} // MainPopoverBackgroundView
class MainPopoverBackgroundView: NSView { override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect) NSColor(red: 34/255.0, green: 34/255.0, blue: 34/255.0, alpha: 1).set()
dirtyRect.fill()
}
}

Step4: 打开 MainPopoverViewController.xib,设置如下:

Step5:运行结果如下:

二、构建主界面

  1. 打开 MainPopoverViewController.xib,设置宽高为: 285 * 600

  2. 将解析的资源里面的 paperHeaderreload_buttonSettingsdownload 文件拖入资源文件夹

Pap.er 模仿 - 第二天的更多相关文章

  1. Pap.er 模仿 - 第一天

    最后更新: 2017-12-15 一. 项目初始化 解析对应的资源, 下载Pap.er之后,需要解析里面的资源. 采用如下的方法: http://blog.csdn.net/xuzihai0703/a ...

  2. virut详细分析

    Virut分析 0x00.综合描述 virut样本的执行过程大体可以分为六步:第一步,解密数据代码,并调用解密后的代码:第二步,通过互斥体判断系统环境,解密病毒代码并执行:第三步,创建内存映射文件,执 ...

  3. Python-Day1 Python基础学习

    一.Python3.5.X安装 1.Windows Windows上找度娘搜索“Python for windows下载”就OK了,安装的时候可以勾选设置环境变量,也可以安装完手动设置,这样在cmd中 ...

  4. windows窗口分析,父窗口,子窗口,所有者窗口

    (本文尝试通过一些简单的实验,来分析Windows的窗口机制,并对微软的设计理由进行一定的猜测,需要读者具备C++.Windows编程及MFC经验,还得有一定动手能力.文中可能出现一些术语不统一的现象 ...

  5. CSS3 3D变形效果

    CSS3 3D变形效果 CSS3 transform3D变形 transform的含义是:改变,使-变形:转换 三维变换使用基于二维变换的相同属性,如果您熟悉二维变换,你们发现3D变形的功能和2D变换 ...

  6. mongo数据库的常见操作

    连接mongodb数据库的命令查看对应数据库mongo.exeuse shujukuming;db.opportunity.findOne({"id":5}); db.opport ...

  7. 爬取5K分辨率超清唯美壁纸

    目录 爬取5K分辨率超清唯美壁纸 简介 编写思路 使用教程 演示图片 完整源代码 @ 爬取5K分辨率超清唯美壁纸 简介 壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空 ...

  8. Mac 上有哪些比较有意思的小软件?

    文章素材来源:微博.新浪看点 收录于:风云社区(SCOEE)[提供mac软件下载] 更多专题,可关注小编[磨人的小妖精],查看我的文章,也可上[风云社区 SCOEE],查找和下载相关软件资源. (一) ...

  9. keras 自定义 custom 函数

    转自: https://kexue.fm/archives/4493/,感谢分享! Keras是一个搭积木式的深度学习框架,用它可以很方便且直观地搭建一些常见的深度学习模型.在tensorflow出来 ...

随机推荐

  1. JS执行顺序问题

    JavaScript执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的.而且在分析执行同一段代码中,定义式的函数语句会被提取出来优先执行.函数定义执行完后,才会按顺序执行其他代码. 先看看 ...

  2. Graphite简要教程

    转载自DevOps实战:Graphite监控上手指南 英文原文Getting Started with Monitoring using Graphite 英文原文Google快照 作者 Frankl ...

  3. Spring HttpServletRequest对象的获取

    1.Controller方法上获取 @RequestMapping(value = "/aliyun/ccc/callComing", method = RequestMethod ...

  4. C结构体与JavaBean转化

    1 概述 (1)项目开发过程可能涉及多种语言,而多种语言之间如何数据交换格式是多种多样的,比如说:Java和JavaScript可以用json,Java和C#可以用xml等等. (2)这里提供一种C与 ...

  5. xss part2

    0x01 xss challenge level 6-10 1.1 level 6 test with typical, notice the script has changed change sc ...

  6. B站视频下载

    借助Chrome插件 bilibili哔哩哔哩下载助手 在谷歌应用商城下载安装后在在浏览器右上角显示如下图标 打开想要下载的视频,网页右下角会有如下图标,点击该图标 点击下面的合并下载按钮即可 htt ...

  7. 【JAVA各版本特性】JAVA 1.0 - JAVA 12

    make JDK Version 1.01996-01-23 Oak(橡树) 初代版本,伟大的一个里程碑,但是是纯解释运行,使用外挂JIT,性能比较差,运行速度慢. JDK Version 1.119 ...

  8. RobHess的SIFT代码解析步骤二

    平台:win10 x64 +VS 2015专业版 +opencv-2.4.11 + gtk_-bundle_2.24.10_win32 主要参考:1.代码:RobHess的SIFT源码 2.书:王永明 ...

  9. <meta http-equiv="X-UA-Compatible" content="IE=edge">详解

    X-UA-Compatible是针对IE8新加的一个设置,对于IE8之外的浏览器是不识别的. 这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE> ...

  10. git 账号密码

    由于git迁移服务地址,而导致无法登陆 首先  git config --system --unset credential.helper  然后执行 git config --global cred ...