OSX 开发知识点汇总(四)

想第一时间获取我的最新文章,请关注公众号: 技术特工队

OSX 中Window中常用的一些属性

1. applicationShouldTerminate

在 AppDelegate 中,复写applicationShouldTerminate方法可以达到控制是否点击关闭按钮是否关闭应用的效果,其返回值TerminateReply有三个值,具体如下:

1
2
3
4
5
public enum TerminateReply : UInt {
case terminateCancel // 取消掉关闭,等于点击无作用
case terminateNow // 现在直接关闭
case terminateLater // 暂且不关闭
}

在下面的返回值可根据一些条件进行判断,比如有些应用点击关闭按钮是仅将窗口关闭,并最小化应用不退出,则可以根据设置情况进行返回不同的值。

1
2
3
func applicationShouldTerminate(_ sender: NSApplication) -> NSApplication.TerminateReply {
return .terminateNow
}

2. applicationShouldTerminateAfterLastWindowClosed

在 AppDelegate中 applicationShouldTerminateAfterLastWindowClosed中的作用为确认是否是等待所有窗口关闭后才关闭整个应用的作用。

1
2
3
func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
return true
}

3. NSWindow windowShouldClose

在每个NSWindow中,有很多的NSWindowDelegate方法,其中windowShouldClose可以根据返回值控制是否可以关闭此窗口,比如有些情况我们的内容没保存,而直接点击关闭按钮时,可进行不关闭此窗口,而是进行提示,那么就可以通过此属性进行控制。

1
2
3
func windowShouldClose(_ sender: NSWindow) -> Bool {
return false // window 不关闭
}

4. NSWindow 单例

在应用中经常会有很多的弹窗,但这些弹框是需要只弹一个的(未关闭多次点击不新建,显示原来的那个),这时候就需要设置Window的属性。具体如下:
选中 目标window 上的Window Controller然后在属性栏中选中show the attributes inspector即可看到Presentation,然后选则single即可,默认是Multiple

自定义控件属性

在 Android 中自定义View,可以自定义很多的属性,对控件进行设置,在 iOS/OSX 中同样存在对自定义控件添加属性的方法,具体为IBInspectableIBDesignable两个属性,定义了此属性后,在XCode中设置了View为此类型后,可以有可视化的设置项,很是方便,具体可以参考这篇文章:https://zhangbuhuai.com/ibinspectable-and-ibdesignable/

WangXin wechat
欢迎订阅我的微信公众号,第一时间获取最新文章!
坚持原创技术分享,您的支持将鼓励我继续创作!