小编Dev*_*per的帖子

斯威夫特2:!,? - "可选类型的值"......"未打开"

可选类型"..."的值未打开; 你的意思是用'!' 要么 '?'?

有人可以解释一下这个错误信息的确切含义吗?我该什么时候应该使用'?' 什么时候 '!'?

swift swift2

13
推荐指数
1
解决办法
3万
查看次数

右键单击NSStatusBarButton时调用Action

我正在寻找一种方法来检测何时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我所知道的几乎所有应用程序都依赖于右键.

macos cocoa nsstatusitem nsstatusbar swift

7
推荐指数
1
解决办法
1692
查看次数

在滚动视图中动态隐藏状态栏时滞后/屏幕冻结(Swift 3)

我目前正在使用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)

statusbar uiscrollview uiviewcontroller swift swift3

6
推荐指数
1
解决办法
174
查看次数

Swift presentViewController完成块仅在未在发布中调用的调试中工作

我在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")中不打印任何内容

对这种行为有什么想法吗?有人试验一个明确的解决方案?

亲切的安德里亚

closures swift completion-block

4
推荐指数
1
解决办法
9875
查看次数

是否可以在Swift中将函数作为另一个函数的参数调用?

是否可以将函数作为另一个函数的参数调用Swift

我想提出一个声音效果的应用程序中Swift,它使用像不同的效果AVAudioUnitReverb()AVAudioUnitDistortion()等等.我想创建一个单一的功能,只是能够打电话我想做哪些影响.

swift swift2

0
推荐指数
1
解决办法
398
查看次数