gpt4 book ai didi

macos - PyObjC 中的箭头键事件处理

转载 作者:行者123 更新时间:2023-12-03 16:45:48 25 4
gpt4 key购买 nike

我正在尝试使用 PyObjC 制作一个应用程序,并且正在努力寻找如何记录箭头键(向左和向右)。我希望能够记录用户每次按下左右箭头键的时间。我正在使用网上找到的另一个例子。我想使用键盘上的箭头键,而不是前面示例中用于增加和减少的按钮。看了一段时间,我想我可以在这里得到一些帮助。谢谢!

from Cocoa import *
from Foundation import NSObject

class TAC_UI_Controller(NSWindowController):
counterTextField = objc.IBOutlet()

def windowDidLoad(self):
NSWindowController.windowDidLoad(self)

# Start the counter
self.count = 0

@objc.IBAction
def increment_(self, sender):
self.count += 1
self.updateDisplay()

@objc.IBAction
def decrement_(self, sender):
self.count -= 1
self.updateDisplay()

def updateDisplay(self):
self.counterTextField.setStringValue_(self.count)

if __name__ == "__main__":
app = NSApplication.sharedApplication()

# Initiate the contrller with a XIB
viewController = test.alloc().initWithWindowNibName_("test")

# Show the window
viewController.showWindow_(viewController)

# Bring app to top
NSApp.activateIgnoringOtherApps_(True)

from PyObjCTools import AppHelper
AppHelper.runEventLoop()

最佳答案

您的NSView派生类应该实现keyDown_和/或keyUp_。您还需要让 acceptsFirstResponder 返回 True:

from AppKit import NSView

class MyView(NSView)

def keyDown_(self, event):
pass

def keyUp_(self, event):
pass

def acceptsFirstResponder(self):
return True

这是 PyObjC 文档中的一个示例实现,您可以使用:https://pythonhosted.org/pyobjc/examples/Cocoa/AppKit/DragItemAround/index.html

关于macos - PyObjC 中的箭头键事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27955985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com