首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示NSUserNotification的横幅,而app位于最前端

显示NSUserNotification的横幅,而app位于最前端
EN

Stack Overflow用户
提问于 2015-08-07 03:02:50
回答 1查看 852关注 0票数 1

我想显示用户通知,而应用程序是最正面的。我在下面找到了代码,但我不知道如何使用委托:它似乎只是返回一个布尔值。

代码语言:javascript
复制
class MyNotificationDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDelegate {

func applicationDidFinishLaunching(aNotification: NSNotification) {
    NSUserNotificationCenter.defaultUserNotificationCenter().delegate = self
}

func userNotificationCenter(center: NSUserNotificationCenter, shouldPresentNotification notification: NSUserNotification) -> Bool {
    return true
} }

我试过一些句子,比如:

代码语言:javascript
复制
var delegate : MyNotificationDelegate = MyNotificationDelegate()
var notification:NSUserNotification = NSUserNotification()
var notificationcenter:NSUserNotificationCenter = NSUserNotificationCenter.defaultUserNotificationCenter()

delegate.userNotificationCenter(notificationcenter, shouldPresentNotification: notification)

但它不会展示横幅。我知道,对于NSUserNotificationCenterdeliverNotification:方法是显示横幅的方法。但我不确定NSUserNotificationCenterDelegate协议。

如何总是显示通知横幅?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-21 06:05:30

您的通知中心委托和委托方法应该在AppDelegate中实现,然后才能工作。如果您在任何其他类中实现,它将不会以横幅形式出现,尽管它在通知面板中无声地出现。

我试着做了以下工作:

代码语言:javascript
复制
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDelegate {



    func applicationDidFinishLaunching(aNotification: NSNotification) {
        let notification: MyNotificationDelegate = MyNotificationDelegate()
        NSUserNotificationCenter.defaultUserNotificationCenter().delegate = self;
        notification.setNotification("Hi", message: "How are you?")
    }

    func userNotificationCenter(center: NSUserNotificationCenter, shouldPresentNotification notification: NSUserNotification) -> Bool {
        return true
    }

    func applicationWillTerminate(aNotification: NSNotification) {
        // Insert code here to tear down your application
    }


}

class MyNotificationDelegate: NSObject {

    func setNotification(title: String, message: String)
    {
        let notification: NSUserNotification = NSUserNotification()
        notification.title = title
        notification.informativeText = message
        NSUserNotificationCenter.defaultUserNotificationCenter().deliverNotification(notification)
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31869040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档