小编obj*_*cow的帖子

使用 Swift 实现/注册 OS X 服务

我正在尝试在 Swift 中实现一个简单的独立服务,该服务可将系统音量静音/取消静音。这部分工作正常,但是当我从热键或服务菜单调用服务时,出现错误

静音[36967:3258511] 找不到选择器的服务提供者 toggleMute:userData:error: 或 toggleMute:: 服务 toggleMute

main.swift:

import AppKit
import AudioToolbox

class Muter {

  var muted: Bool {...}

  //Service Method
  func toggleMute(pboard: NSPasteboard, userData: String, error: NSErrorPointer) {
    println("Service mute called")
    muted = !muted
  }
}

NSRegisterServicesProvider(Muter(), "Mute")
NSRunLoop.currentRunLoop().run()
Run Code Online (Sandbox Code Playgroud)

信息.plist:

<key>NSServices</key>
<array>
    <dict>
        <key>NSMenuItem</key>
        <dict>
            <key>default</key>
            <string>Toggle Mute</string>
        </dict>
        <key>NSMessage</key>
        <string>toggleMute</string>
        <key>NSPortName</key>
        <string>Mute</string>
    </dict>
</array>
Run Code Online (Sandbox Code Playgroud)

macos cocoa swift osx-yosemite

2
推荐指数
1
解决办法
1312
查看次数

标签 统计

cocoa ×1

macos ×1

osx-yosemite ×1

swift ×1