草庐IT

swift 2 : CGEventSetFlags with multi CGEventFlags

coder 2023-09-07 原文

我正在尝试触发快捷键,例如 ctrl+cmd+space

一开始我的代码是这样的:

let source = CGEventSourceCreate(.CombinedSessionState)
let keyDown = CGEventCreateKeyboardEvent(source, 49 as CGKeyCode, true)
let keyUp = CGEventCreateKeyboardEvent(source, 49 as CGKeyCode, false)
CGEventSetFlags(keyDown, .MaskCommand)
CGEventSetFlags(keyDown, .MaskControl)
CGEventPost(.CGSessionEventTap, keyDown)
CGEventPost(.CGSessionEventTap, keyUp)

但它不起作用,因为 .MaskControl 覆盖了 .MaskCommand 这意味着我只需要使用方法 CGEventSetFlags 一次并设置两者命令键和控制键。

所以我谷歌了一下,发现你可以在 Swift1 中这样做:CGEventSetFlags(keyDown, .MaskCommand | .MaskControl)。对吗?好吧,我使用的是 Swift2,但它不起作用。我尝试了 CGEventSetFlags(keyDown, [.MaskCommand, .MaskControl]),也没有用。

所以,请告诉我在 Swift2 中使用 CGEventSetFlags 的正确方法。谢谢!

最佳答案

“或”原始值并创建一个新的 CGEventFlags

let commandControlMask = (CGEventFlags.maskCommand.rawValue | CGEventFlags.maskControl.rawValue)
let commandControlMaskFlags = CGEventFlags(rawValue: commandControlMask)
CGEventSetFlags(keyDown, commandControlMaskFlags)

关于 swift 2 : CGEventSetFlags with multi CGEventFlags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35274099/

有关swift 2 : CGEventSetFlags with multi CGEventFlags的更多相关文章

  1. javascript - 在 ag-grid 中显示嵌套的 json - 2

    我正在使用AngularGrid(ag-grid)来显示数据。我正在尝试在我的Angular网格中显示嵌套的json数据。但我没有成功。下面是示例json数据和colDef。请提出为什么点运算符与jqgrid不同,无法使用嵌套的json字段映射网格列。varapp=angular.module('myApp',['ngGrid']);app.controller('MyCtrl',['$scope','$http',function($scope,$http){$scope.myData=[{"defaultColumns1":{"region":"PA"},"defaultColum

  2. javascript - 显示加载或任何覆盖时禁用 ag-grid - 2

    使用api调用显示加载叠加层(或任何其他叠加层)时gridOptions.api.showLoadingOverlay()在ag-grid中,叠加层下方的行和所有网格功能(按钮、上下文菜单等)仍然可选择/可用。有什么办法可以防止这种情况发生吗?是否有计划在未来的版本中更改此行为? 最佳答案 添加这条CSS规则:.ag-bl-overlay{pointer-events:auto;}出于某种原因,此选择器的默认CSS是:.ag-bl-overlay{height:100%;left:0;pointer-events:none;posi

  3. javascript - Ag-Grid:如何保存和重新加载列顺序 - 2

    使用Ag-Grid,用户可以拖动列以按照自己喜欢的方式对其进行排序。我需要允许用户保存他们的列顺序(到SQL后端),以便它成为他们的默认列顺序。我试图像这样获取列名:varcols=schedGridOptions.columnApi.getAllColumns();for(colincols){varcolDef=col.getColDef();console.log(colDef.headerName);}这是我找到的用于设置header名称的示例,因此我尝试对其进行调整以获取header名称。但是我得到这个错误:JavaScriptruntimeerror:Objectdoesn

  4. javascript - 从 ag grid angular 中取消选择选定的行 - 2

    是否有任何网格api以编程方式取消选择ag-grid选定的行?我正在尝试对所选行执行一些操作,基本上是异步操作,之后我需要从网格中取消选择该行。 最佳答案 使用gripapi的deselectAll函数。成功了!this.gridOptions.api.deselectAll(); 关于javascript-从aggridangular中取消选择选定的行,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

  5. javascript - 尽管在 ag-grid 中使用了 sizeColumnsToFit,但不必要的水平滚动条出现了 - 2

    我已将我的ag-grid版本从7.2.0升级到v14.2.0。当我将sizeColumnsToFit()api与onGridReady或onGridSizeChanged事件一起使用时,它可以工作,但它保留了不必要的水平滚动,可能是由于计算错误网格宽度。这个问题(?)也可以在ag-grid的官方示例中看到,https://www.ag-grid.com/javascript-grid-responsiveness/#example-example1对于以前的版本,这在没有任何水平滚动的情况下完全可以正常工作。当我手动调用$scope.gridOptions.api.sizeColumn

  6. javascript - 如何将 AG 网格控件的标题中的文本居中? - 2

    如何将AG网格控件的标题中的文本居中?我曾尝试在列定义中使用cellstyle和cellclass,但这没有用。谢谢 最佳答案 我正在使用React,我只是将以下代码片段添加到我的表组件的.css.ag-header-cell-label{justify-content:center;}我正在覆盖ag-grid中的.css类,这是我通过devtools检查发现的,并发现它使用flexbox进行显示。参见示例(不是react,而是相同的概念):https://embed.plnkr.co/O3NI4WgHxkFiJCyacn0r/

  7. javascript - 无法绑定(bind)到 'gridOptions',因为它不是 'ag-grid-angular' 的已知属性 - 2

    我正在尝试运行theexampleprojectofag-grid但出现以下异常:Can'tbindto'gridOptions'sinceitisn'taknownpropertyof'ag-grid-angular'代码:它说在ag-grid-angular上没有像“gridOptions”这样的Prop。很奇怪,因为它来自ag-grid的官方网站。任何帮助将不胜感激! 最佳答案 看来你还没有用@NgModule({})注册AgGridModule如果错过请尝试下面的代码:import{NgModule}from"@angula

  8. javascript - 如何使用 Angular 将列标题包装在 ag-grid 中 - 2

    我有一些栏目有四个词,即交易前跟进、交易后跟进,其中一些栏目有三个词。我尝试了下面的css将文本换行到多行。::ng-deep.ag-theme-material.ag-header-cell-label.ag-header-cell-text{white-space:normal;overflow-wrap:break-word;}HTML但列标题保持不变。我想将列标题文本换行到多行。有办法做到这一点吗?注意:我可以使用cellStyle:{'white-space':'normal'}来包装内容{headerName:'headername',field:'headerfield'

  9. javascript - ag-grid 没有在函数内部填充? - 2

    我是agGrid的新手,如果您发现一些愚蠢的东西,请原谅我。所以在此之前,我在angularjs上使用KendoGrid,但我们想切换到其他一些网格,所以我们现在正在尝试agGrid。下面是aggrid的示例,它运行良好并且一切正常。但是,当我将我的网格选项移动到一个将在单击按钮时调用的函数中时,我收到了警告-未找到ag-Grid的网格选项。请确保属性ag-grid指向范围内的有效对象。我无法理解问题出在哪里,因为在此函数中,kendo网格选项工作正常并且kendo网格正在填充,但我不确定我在agGrid上做错了什么。请帮助我。functionabc($rootScope,$scope

  10. javascript - 如何在 ag-grid 中获取过滤行? - 2

    我有一个ag-Grid带过滤选项。如何在ag-Grid中获取过滤后的行(非选中行)? 最佳答案 您可以为此使用forEachNodeAfterFilter(callback)API方法。参见https://www.ag-grid.com/javascript-grid-api用于所有可用的API调用,包括各种forEachXXX方法。 关于javascript-如何在ag-grid中获取过滤行?,我们在StackOverflow上找到一个类似的问题: http

随机推荐