close() } ... } 完美关闭登陆页~ 且其他页面照常运行~ 但这个的方法,前提是得获得当前 WIndowController 实例,所以得在单例中、ViewController...中或者做全局的 WindowController 管理?...太麻烦了 而且这个方法毕竟不是官方推荐的,就像手动调用 ViewController 的 layoutSubViews 一样,感觉不稳,所以我要找个稳妥的方法给大家 # 推荐 NSView :: window...注意这里要分 NSWindowControoler、NSViewController 和 NSView ,具体在使用分别帮大家总结一个吧 # 总结 帮大家总结一下 NSWindowController...:: 我们直接使用 self.window.close() 就可以啦 NSViewController :: 我们需要通过 self.view.window.close() 来关闭 NSView ::
close() } ... } 完美关闭登陆页~ 且其他页面照常运行~ 但这个的方法,前提是得获得当前 WIndowController 实例,所以得在单例中、ViewController...中或者做全局的 WindowController 管理?...太麻烦了 而且这个方法毕竟不是官方推荐的,就像手动调用 ViewController 的 layoutSubViews 一样,感觉不稳,所以我要找个稳妥的方法给大家 推荐 NSView :: window...注意这里要分 NSWindowControoler、NSViewController 和 NSView ,具体在使用分别帮大家总结一个吧 总结 帮大家总结一下 NSWindowController...:: 我们直接使用 self.window.close() 就可以啦 NSViewController :: 我们需要通过 self.view.window.close() 来关闭 NSView ::
前言 场景:登录成功后,我们需要关闭当前登录页的 NSViewController 以及 NSWindowController ,这时就需要获得当前的 window 进行关闭 解决 这里分别针对...NSView、NSViewController、NSWindowController 给出方案 NSView 这三者方法其实类似,看完。...NSView 的后面就能猜到了 self.window 通过阅读官方文档我们发现,NSView 本身就是持有 window 的,所以这个很简单 NSViewController NSViewController...所以也很简单啦 self.window 这里要注意:由于 window 是在 NSWindowController 上,而 NSView 和 NSVC 又都是在 NSWindow 上 所以这三个上获得的
# 前言 场景:登录成功后,我们需要关闭当前登录页的 NSViewController 以及 NSWindowController ,这时就需要获得当前的 window 进行关闭 # 解决 这里分别针对...NSView、NSViewController、NSWindowController 给出方案 # NSView 这三者方法其实类似,看完。...NSView 的后面就能猜到了 self.window 通过阅读官方文档我们发现,NSView 本身就是持有 window 的,所以这个很简单 # NSViewController NSViewController...所以也很简单啦 self.window 这里要注意:由于 window 是在 NSWindowController 上,而 NSView 和 NSVC 又都是在 NSWindow 上 所以这三个上获得的
关于NSViewController基础细节,有兴趣的同学可以参考我的Mac开发基础教程这个系列的教程,友情提示: 自学能力好的同学可以参考github中的课程代码.另外一门macOS 应用开发进阶课程...= nil) 0x01 : present 与 transition 在上面的系统提供的NSViewController四个方法中,可以分为present和transition两种方式: presentXXX...{ 1. present 动画时,执行这个方法,因此在这个方法中实现自定义的动画效果 public func animatePresentation(of viewController: NSViewController..., from fromViewController: NSViewController) 2. dismiss动画时,执行这个方法 ,在这个方法中可以实在自定义的动画效果 public func...通常开发中如果没有特殊需求,transition的系统样式基本都可以满足使用.
关于NSViewController.TransitionOptions详细效果可以参看Mac开发跬步积累(二):NSViewController 转场动画精耕细作 0x01: NSTabViewController...设置更多Style NSTabViewController的tabStyle属性仅提供了4种样式,但实际开发中可能会需要下图中的两种情况(居左/居右) 切换栏居左/居右 我们使用tabView的tabViewType...无论在macOS系统中或者在其他应用中,NSTabViewController都有广泛的使用场景 NSTabViewController的应用场景 每个macOS App 几乎都有一个功能: 偏好设置...,如果偏好设置中的选项比较少,一个页面就足够展示,这种情况使用一个NSViewController就可以实现效果了,但通常来讲,我们希望自己的App能提供给用户更多的选项设置,以便于用户可以更多的进行个性化选择功能...关于NSView与NSViewController的相关基础,有兴趣的同学可以参考macOS 开发基础视频教程中的项目代码(地址在文章中有链接)
Event是对象,它代表了一个被硬件检测到的用户行为,并且该行为传递到iOS中。...这个方法会递归的调用pointInside:withEvent方法在view树的每一个会返回YES的view中。...,和editing-menu message, view就是firstResponder。...对象中。...如果shaking少于一秒,则系统会发送motionEnded:withEvent:消息给firstResponder。
Xcode4.5中,工程模板会默认为App程序创建启动用的MainView,配套一个MainView.xib文件,其中默认会有一个Window对象。...方法中设置window对象的rootViewController为MyMainViewController对象的实例。...结果却是在main方法中即崩溃了。...对比此项目与系统模板创建的项目,发现是在MyMainViewController中缺少了与AppDelegate对象的关联,于是在MyMainViewController.xib视图中添加了一个Object...比如多文档程序中,menu的响应事件一般都是连接到FirstResponder中去的,因为主界面一般都在别的nib里面,此时的FirstResponder就是你的那个主nib的FileOwner。
NSNotification *)aNotification { // Insert code here to tear down your application } ViewController:继承自NSViewController...1、NSViewController/NSWindowContorller 在iOS上,APP只有一个Window,所有的View都在这个唯一的Window上,所以我们不需要管理Window,但是,在macOS...原因在于macOS 中创建 NSViewController 不会自动创建 view.View默认也不会创建layer,所以需要自定义View....我这个App需要的窗口只有一个,所以不再详细阐述NSViewController/NSWindowContorller的用法 2、Dock菜单 在info.plist里加LSUIElement为YES可以让...在代码中,我们不能使用这样的命令来获取,因为xcrun实际上相当于是快捷方式,必现找到xcode路径,找到simctl的实际path NSTask *task = [NSTask new
显然ViewController中我们已经实现了keyDown:方法;在回答这个问题之前,我们先看一下网络上普遍关于NSViewController监听键盘事件的方法:使用NSEvent添加本地事件监听...窗口的第一响应者 根据控制台信息,我们可以看出键盘事件的第一响应者是当前窗口对象NSWindow,在键盘事件的整个响应链中,ViewController是被忽略的,所以ViewController中的...的 addLocalMonitorForEventsMatchingMask: handler:方法中,handler中为什么返回值?...在控制器(NSViewController)中运行代码[self.view setNextResponder:nil];的效果与期望一样么?...NSWindow 的makeFirstResponder: 生效的条件是什么? NSViewController实现acceptsFirstResponder方法并返回YES 有效果么? 为什么?
怎么让继承的类直接使用XIB的布局试图 最近做的一个小工具,一键替换key,就是为了解放双手,不然每次运行测试和正式的版本都要手动的替换key。...自己几乎所有的项目都是用的全代码,但是平时demo和一些小工具还是用上可视化试图和最新语言Swift. 做到是一个mac程序,几个界面基本上的功能按钮都是一样的。就封装了一个类,用上了xib。...大体上解决方法和我想的是一样的。 解决问题的视频地址https://www.youtube.com/watch?v=Wx7qk2oOV48 下面是怎么实现的,看不了视频的可以看我的。...新建一个OToolBarView类继承于NSView. class OToolBarView: NSView { } 因为Storyboard不允许直接拖拽NSView,允许我们拖拽NSViewController...但是我们的是自定义试图,用不上NSViewController。就新建一个xib来做了。 ? 名字命名为OToolBarView.xib我们在xib里面关联刚才创建的类。 ?
在开发过程中,我们经常会用到UITextField、UITextView等文本框,然后这些文本框在点击之后会自动成为第一响应者(FirstResponder),并自动弹出软键盘。...然而,没有自动定义好的软键盘的回收。今天,我在开发过程中就遇到了这个问题,首先,软键盘收起会发生在两种情况下,一是当前区域为非第一响应者,二是当前区域的输入结束。...当点击事件发生在非选中区域时,则键盘会自动回收: 1 //在viewDidLoad中 添加点击手势,为了关闭键盘的操作 2 UITapGestureRecognizer *tap1 = [[UITapGestureRecognizer...对于UITextField,相应的UITextFieldDelegate有相关的处理 1 //设置回车键的类型和代理 2 self.themeTextField.returnKeyType = UIReturnKeyDone...并没有相应的处理回车键的方法。
项目名称 在Mac OSX系统中,屏幕的右上角就是我们说的状态栏(NSStatusBar),一直是常驻应用的必争之地。...,并且将它自动的添加到状态栏中)。...添加图片资源到项目工程中 如果没有出错,运行项目,你应该看到一个空的窗口,而且在屏幕的右上角已经出现了我们应用的常驻标志^_^,是不是感觉很容易啊~ ?...NSPopover 提供了在屏幕内容视图上显示额外信息内容的一种方式(其实这个类似于在iPad开发中是常见的UIPopoverPresentationController),它的定位相对与现有内容。...,下面我们来创建一个NSViewController来管理popover的内容视图: 1.5 添加SBPopViewController ?
现在,您已经了解了 Registers macOS 应用程序背后的功能,为 NSViewController 的 viewDidLoad 方法创建一个符号断点。...如果您还记得的话,-[NSViewController viewDidLoad] 将被转换为以下程序集伪代码: RDI = UIViewControllerInstance RSI = "viewDidLoad..." objc_msgSend(RDI, RSI) 考虑到 x64 调用规则,并且知道 objc_msgSend 的工作方式,您可以找到要加载的特定 NSViewController。...NSViewController 引用,您现在知道该引用是该方法的第一个参数的位置。...然后删除您在 -[NSViewController viewDidLoad] 上设置的符号断点。生成并运行该应用程序,然后等待 executeLotsOfArguments 断点停止执行。
,程序在运行中崩溃但是崩溃在了未解开源码的组件上,自己看到的只是一堆不明所以的汇编代码(图1),无法像源码调试那样看到足够丰富的调试信息。...问题2:在美团的文章中可以了解到,使用dwarfdump 命令可以获取静态库中存储的编译静态库时源码文件所在的路径。...如果剪切板不能用,在模拟器中输入地址或者长文本,对iOS、RN和H5的开发者都是非常耗时、非常痛苦的事情。...图7 获取当前输入框的代码如下: @interface UIResponder (FirstResponder...五、参考 美团 iOS 工程 zsource 命令背后的那些事儿 DWARF 1.1.0 Reference iOS get firstResponder 【推荐阅读】 携程鸿蒙应用开发实践 携程酒店
创建项目 导航区的第三个菜单 Symbol navigator 替换为 Bookmark navigator。 导航区 调试区的菜单发生变化,并且输出的内容随着不同的级别拥有不同的背景色。...Archive.png 功能 Assets 中的创建的Image Set与Color Set可以生成类型安全的标识符,在程序中可以.标识符的形式访问。...traits: PreviewTrait..., body: @escaping () -> NSViewController...image.png 代码支持添加 Bookmark,在某一行代码或者选中多行代码后右击,可以看到相应的添加菜单。可以在 Bookmark navigator 中查看添加的所有 Bookmark。...条件编译代码随着选择的条件会高亮显示对应条件的编译代码。 右击菜单 Show Quick Help 显示更加丰富的文档内容。
启动图名字生成第二篇 我们写一下配置启动图名字的页面保存按钮的逻辑 @IBAction func saveAction(_ sender: Any) { for index in 0.....类里面写一个保存我们启动图名字的方法。.../// 保存自定配置的启动图的名称 /// /// - Parameter list: 启动图名称的列表 func saveLaunchNames(list:[String]) { let userDefaults...) 我们在NSViewController下面的方法写逻辑,让弹出配置启动图试图时候把我们本地的配置传递过去 override func prepare(for segue: NSStoryboardSegue...不是真正的分辨率的大小,我们需要用到 open var representations: [NSImageRep] { get } 属性,里面的NSImageRep里面的 open var pixelsWide
开发小集锦 记录开发中的琐碎技巧,以备查阅....设置工程默认语言环境 weak 与 unowned 在swift的闭包中我们在使用self时为了避免循环引用的问题,经常使用weak self 或者unowned self,这两种方式既相似又略有区别...[weak self]在闭包中的 self 为可选类型 HttpTool.request("your-url").complete{ [weak self] response in self?....updateUI() } [unowned self]在闭包中的self 为非可选类型: 因此若闭包执行前self被释放,会造成crash HttpTool.request("your-url")....print("did error \(string)") } 添加系统提醒事件(iOS通用) 提醒事项 使用EKEventStore 与EKReminder实现添加事件到系统的提醒应用中
对于基本的工程设置我就不多说了,可以参考我一键替换测试和正式key的专题,那里有介绍。 ? 这是首页的界面。...点击选择启动图的按钮:选择我们本地启动图 配置启动图名称:配置我们生成启动图的名称 因为我们就生成支持ios8以上的 我们就只需要五张图片。所以不配置的话就使用默认的五张名称。...SFileMangerError.message(let message) { alertMessage(message: message) } catch _ { } } 我们新建一个NSViewController...界面效果并不是我们想要的,我们再次的设置一下xib的约束。...我们在获取图片源的地方添加判断 选中的里面必须包含我们需要的图片。
中Subviews的逆顺序; 2、如果View的同级别Subview中有重叠的部分,则优先检查顶部的Subview,如果顶部的Subview返回nil,再检查底部的Subview; 3、Hit-Test...也是比较聪明的,检测过程中有这么一点,就是说如果点击没有发生在某View中,那么该事件就不可能发生在View的Subview中,所以检测过程中发现该事件不在ViewB内,也直接就不会检测在不在ViewF.../blog/100032/iOS事件分发机制(二)The%20Responder%20Chain 4.2.1事件传递原理 响应链简单来说,就是一系列的相互关联的对象,从firstResponder开始...,到application对象结束,如果firstResponder无法响应事件,则交给nextResponder来处理,直到结束为止。...iOS中很多类型的事件分发,都依赖于响应链;在响应链中,所有对象的基类都是UIResponder,也就是说所有能响应事件的类都是UIResponder的子类,UIApplication/ UIView/