可选类型"..."的值未打开; 你的意思是用'!' 要么 '?'?
有人可以解释一下这个错误信息的确切含义吗?我该什么时候应该使用'?' 什么时候 '!'?
我正在寻找一种方法来检测何时NSStatusBarButton右键单击(使用Swift)并调用操作.
我目前正在这样设置:
let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-1)
func applicationDidFinishLaunching(aNotification: NSNotification) {
// Insert code here to initialize your application
if let button = statusItem.button {
button.image = NSImage(named: "myImage")
button.alternateImage = NSImage(named: "myImage")
button.action = Selector("myAction")
}
}
Run Code Online (Sandbox Code Playgroud)
我想过使用button.rightMouseDown(<#theEvent: NSEvent#>)(因为没有这样的"alternateAction"),但不幸的是,由于我刚开始编写Mac应用程序,我无法想出一些东西.
更新:
在寻找一种方法时,我看到一些线程告诉子类a,
NSView但我不知道它应该如何工作(这可能是因为我对编程很新,甚至不知道如何"子类").我仍然认为有一些更简单的方法可以使用它,因为statusBar我所知道的几乎所有应用程序都依赖于右键.
我目前正在使用Scroll View不同的页面.我的目标是隐藏Status Bar在一个特定的页面上.有一个非常烦人的滞后,每次重新出现/消失时屏幕都会冻结Status Bar.
这是我的方法:
首先,我定义了两个变量
private var currentPage = 0
private var isStatusBarPreferablyHidden = true
Run Code Online (Sandbox Code Playgroud)
然后我使用Scroll View Delegate中的两个函数setNeedsStatusBarAppearanceUpdate在用户滑动到第一页时调用
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let currentScrollPosition : CGFloat = self.navigation.contentOffset.x / self.navigation.frame.size.width
currentPage = lroundf(Float(currentScrollPosition))
}
func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) {
if currentPage == 0 {
isStatusBarPreferablyHidden = true
} else {
isStatusBarPreferablyHidden = false
}
self.setNeedsStatusBarAppearanceUpdate()
}
Run Code Online (Sandbox Code Playgroud)
最后,我覆盖状态栏功能以更新状态栏的外观.
override var prefersStatusBarHidden: Bool {
return isStatusBarPreferablyHidden
}
override var …Run Code Online (Sandbox Code Playgroud) 我在Debug和Release中有一个完成块的奇怪行为.例如:
sourceViewController.presentViewController(ccVC, animated: true, completion: { () -> Void in
NSUserDefaults.standardUserDefaults().setBool(true, forKey: kChromeCastInstructionsShown)
NSUserDefaults.standardUserDefaults().synchronize()
println("save bolean")
})
Run Code Online (Sandbox Code Playgroud)
在调试中:println("save bolean")print string在relase:println("save bolean")中不打印任何内容
对这种行为有什么想法吗?有人试验一个明确的解决方案?
亲切的安德里亚
是否可以将函数作为另一个函数的参数调用Swift?
我想提出一个声音效果的应用程序中Swift,它使用像不同的效果AVAudioUnitReverb()和AVAudioUnitDistortion()等等.我想创建一个单一的功能,只是能够打电话我想做哪些影响.
swift ×5
swift2 ×2
closures ×1
cocoa ×1
macos ×1
nsstatusbar ×1
nsstatusitem ×1
statusbar ×1
swift3 ×1
uiscrollview ×1