gpt4 book ai didi

c# - 使用 C# 和 Xamarin 防止按 F8(播放)按钮后启动 iTunes/Music.app

转载 作者:行者123 更新时间:2023-12-03 17:18:33 25 4
gpt4 key购买 nike

众所周知,如果我们按下 F8(播放)键盘按钮,iTunes 或 Music .app 在 macOS 上默认打开。某些 Swift 类可用于阻止此键盘快捷键,但它们与 C# 和 Xamarin 不兼容。例如,Spotify macOS 应用程序就具有此功能。如果您按 UI 上的播放按钮一次,它将控制 iTunes 并处理“播放”按钮按键事件。

我有这个代码块。但是,由于 iTunes,macOS 无法触发代码块。其他按键(例如字母和数字)工作正常:

private NSEvent KeyboardEventHandler(NSEvent theEvent)
{


ushort keyCode = theEvent.KeyCode;


if(keyCode== 100) //rbKeyF8 100 is play button.
{
switch (isplaying)

{
case true:
StopMusic();
break;
case false:
PlayMusic();
break;
}
}
// NSAlert a = new NSAlert()
//{
// AlertStyle = NSAlertStyle.Informational,
// InformativeText = "You press the " + keyCode + " button :)",
// MessageText = "Hi"

//};
//a.RunModal();

return theEvent;
}

我们如何用 C# 做到这一点?谢谢。

最佳答案

答案是:注册一个新的子类

[Register ("App")]
public class App : NSApplication
{
public App (System.IntPtr p) : base (p)
{

}

public override void SendEvent (NSEvent theEvent)
{
base.SendEvent (theEvent);
}
}

在Info.plist中更改PrincipalClass

<key>NSPrincipalClass</key>
<string>App</string>

并且需要子类化 NSApplication 并查看 sendEvent。您应该将 Swift 代码转换为 C#。相关的swift代码在这里: Make my Cocoa app respond to the keyboard play/pause key?

Now, i have another problem. Yep, this code block solved my problem’s first part. Now my app responds the play button press. However, iTunes opened after the my app's respond. How can I prevent it to open ?

关于c# - 使用 C# 和 Xamarin 防止按 F8(播放)按钮后启动 iTunes/Music.app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58835867/

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