【Swift Mac开发】纯代码创建NSViewController
对于习惯了纯代码iOS开发的人来说,刚接触Mac端开发时,是非常不友好的,网上所有的教程都是通过Xib或StoryBoard的方式创建NSViewController,而且苹果文档也是鼓励用Xib的开发进行Mac 开发,但对于纯代码开发也给了补救方式,现在给大家分享一种可以直接代码创建的方式。
Apple Document:
If you pass in a nil for nibNameOrNil then nibName will return nil and loadView will throw an exception; in this case you must invoke setView: before view is invoked, or override loadView.
翻译如下:
如果为nbNameOrNil传递nil,则nibName将返回nil,并且loadView会引发异常;在这种情况下,您必须在调用视图之前调用setView:,或重写loadView。
如果不补救,对于通过JFProgrammaticallyViewController()创建的控制器,会报如下错误:
-[NSNib _initWithNibNamed:bundle:options:] could not load the nibName: CodeCreateUiDemo.JFProgrammaticallyViewController in bundle (null).
废话少说,上代码:
import Cocoa
import SnapKitclass ViewController: NSViewController {var button : NSButton!override func viewDidLoad() {super.viewDidLoad()button = NSButton(frame: CGRect(x: 0, y: 0, width: 100, height: 100))button.wantsLayer = truebutton.layer?.backgroundColor = NSColor.red.cgColorbutton.title = "click"button.target = selfbutton.action = #selector(clickAction(sender:))self.view.addSubview(button)}@objc func clickAction(sender:NSButton) {let programmaticallyVC = JFProgrammaticallyViewController()self.presentAsModalWindow(programmaticallyVC)}override var representedObject: Any? {didSet {// Update the view, if already loaded.}}}//纯代码创建的ViewController
import Cocoaclass JFProgrammaticallyViewController: NSViewController {var mView : NSView!//这一端是重重之中,对于无法通过Nib加载view,就要通过loadView()方法来进行补救,override func loadView() {self.view = NSView(frame: CGRect(x: 0, y: 0, width: 400, height: 300))}override func viewDidLoad() {super.viewDidLoad()mView = NSView(frame: NSRect(x: 0, y: 0, width: self.view.bounds.size.width, height: self.view.bounds.size.height))mView.wantsLayer = truemView.layer?.backgroundColor = NSColor.red.cgColorself.view.addSubview(mView)}}
运行如下图;
【Swift Mac开发】纯代码创建NSViewController相关推荐
- ios14.3开发之使用纯代码创建UITabbarController
ios14.3开发之使用纯代码创建UITabbarController 这里我们IOS版本14.3.Xcode 版本选择的是.12.3版本:来自apple最新的xcode版本,该版本支持最新的swif ...
- IOS14.3开发之使用纯代码创建UIButton以及弹框的使用
IOS14.3开发之使用纯代码创建UIButton以及弹框的使用 源码在这 // // ViewController.m // testDemo1 // // Created by 鲁军 on 202 ...
- Swift5.x使用纯代码创建NavigationTab控制器设置启动图Wb第1部分
Swift5.x使用纯代码创建NavigationTab控制器设置启动图Wb第1部分 前言 1 使用纯代码创建NavigationTab控制器必须会,也可使用storyboard拖控件,没有代码创建灵 ...
- iOS回顾笔记( 01 )-- XIB和纯代码创建应用的对比
iOS回顾笔记( 01 )-- XIB和纯代码创建应用的对比 很多时候我们工作很久突然闲下来的时候,是不是也感到无聊过?这就是我现在的生活,不过闲一段时间也挺好,可以好好回顾一下自己以前学习iOS路 ...
- IOS基础之使用UICollectionView纯代码创建
IOS基础之使用UICollectionView纯代码创建 资料来自2016-5-12某站. 有一定的参考意义, 涉及plist 转字典模型,UICollectionView使用纯代码加载到View里 ...
- Unity3D开发之代码创建圆柱体
看到这篇文章你可能好奇unity自带圆柱体组件,直接就可以生成,为什么我们还要用代码生成.其实是最近领导对项目有一个要求,就是我们要在自写编辑器内操作圆管,也就是圆柱体.功能类似3DMax里的拉伸管线 ...
- Qt文本编辑器开发------纯代码实现
目录 前言 项目分析 项目效果 项目流程 1. 先设置好文本编辑框的大小与名称 2.创建输入处理框 3.创建菜单栏 4.创建菜单按钮下的动作按钮 5.创建与动作按钮对应的槽函数 6.附件功能的实现 7 ...
- 【Swift Mac开发】自定义NSTableView选中行背景
由于使用的是基于视图的NSTableView,因此可以将NSTableRowView子类化,将其提供给表委托方法- (NSTableRowView *)tableView:(NSTableView * ...
- iOS 使用纯代码或xib创建圆角视图
尊重原创 转自:http://www.jianshu.com/p/80f1fd3f63a0 引言: 在我们日常开发中, 很多中情况下我们需要设置UIView或者UIImageView的圆角以及边框等, ...
最新文章
- DNS服务,A记录,URL转发,MX记录,NS记录,CNAME记录,解释与设置教
- 将ArrayList保存到SharedPreferences
- wsl子系统添加开机启动任务
- Anolis 安装图解
- js二级下拉被flash档住的解决办法
- 微服务feignclient_搞微服务用阿里开源的 Nacos 真香啊
- 解决hibernate双向关系造成的一方重复执行SQl,或者死循环的问题
- 支付宝一项重要服务突然改名!官方:已启动品牌隔离,服务不受影响
- go语音protobuf_总结一下protobuf安装-Go语言中文社区
- linux下的chromedriver驱动器配置实例(含代码)
- Connection reset问题,INFO: I/O exception (java.net.SocketException) caught when processing reques
- Interface的精髓——《Thinking in Java》随笔025
- docker制作容器(待更新)
- 《大学计算机基础》试题题库及答案
- Foxit PDF Creator注册码
- 《电脑音乐制作实战指南:伴奏、录歌、MTV全攻略》——2.2 能知旋律但不知歌名,使用哼唱搜索来找歌...
- 网络存储NAS网络存储器术语解释
- 2022年贵州省职业院校技能大赛中职组网络安全赛项规程
- android开发之高仿中国建设银行App
- storm是java还是python_Storm概念学习系列之什么是实时流计算?