首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Swift中将Int转换为未签名短?

如何在Swift中将Int转换为未签名短?
EN

Stack Overflow用户
提问于 2015-04-02 08:21:46
回答 1查看 2.2K关注 0票数 2

我在Swift项目中的Objective库中有以下功能:

代码语言:javascript
复制
- (DDHotKey *)registerHotKeyWithKeyCode:(unsigned short)keyCode modifierFlags:(NSUInteger)flags task:(DDHotKeyTask)task {
    // ...
}

我试图通过以下代码从Swift调用这个函数:

代码语言:javascript
复制
    hotKeyCenter.registerHotKeyWithKeyCode(
        kVK_ANSI_V,
        modifierFlags: NSEventModifierFlags.ControlKeyMask.rawValue,
        task: { _ in
            // ...
        }
    )

不幸的是,它给了我以下错误:

调用中缺少参数“action”的参数参数

但是,如果我将kVK_ANSI_V更改为这样的任何数字

代码语言:javascript
复制
    hotKeyCenter.registerHotKeyWithKeyCode(
        34,
        modifierFlags: NSEventModifierFlags.ControlKeyMask.rawValue,
        task: { _ in
            // ...
        }
    )

代码编译时没有任何错误。

如您所知,在碳框架中定义的kVK_ANSI_V

代码语言:javascript
复制
var kVK_ANSI_V: Int { get }

正如您所看到的,它有一个Int类型,而方法的keyCode参数有一个unsigned short类型。

我如何将Int转换为unsigned short?有办法纠正这个错误吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-02 08:39:22

您可以简单地使用UInt16从任何整数n创建UInt16(n)。就你而言:

代码语言:javascript
复制
hotKeyCenter.registerHotKeyWithKeyCode(
    UInt16(kVK_ANSI_V),
    modifierFlags: NSEventModifierFlags.ControlKeyMask.rawValue,
    task: { _ -> Void in

})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29408246

复制
相关文章

相似问题

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