Ios 目标c键盘输入
我相信我看过了每一篇关于键盘输入的文章,但仍然无法让它发挥作用。我想要的只是一个输出,无论是否在应用程序中,每次我按键时都使用NSLog。我目前正在使用xcode 5。我试过很多代码片段,比如Ios 目标c键盘输入,ios,objective-c,macos,input,keyboard,Ios,Objective C,Macos,Input,Keyboard,我相信我看过了每一篇关于键盘输入的文章,但仍然无法让它发挥作用。我想要的只是一个输出,无论是否在应用程序中,每次我按键时都使用NSLog。我目前正在使用xcode 5。我试过很多代码片段,比如 [NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask handler:^(NSEvent *event) NSLog(@"%@",event.characters); 我不知道他的密码放在哪里。我把它放在像这样的主函数中吗 #
[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask handler:^(NSEvent *event)
NSLog(@"%@",event.characters);
我不知道他的密码放在哪里。我把它放在像这样的主函数中吗
#import <Foundation/Foundation.h>
#import <appkit/NSEvent.h>
int main(int argc, char * argV[]) {
@autoreleasepool{
[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask handler:^(NSEvent *event)
NSLog(@"%@",event.characters);
}
}
#导入
#进口
int main(int argc,char*argV[]){
@自动释放池{
[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask处理程序:^(NSEvent*事件)
NSLog(@“%@”,事件字符);
}
}
显然,我是objective-C新手,除非我能让键盘输入正常工作,否则我不打算继续使用它。我尝试过教程、键盘记录器的代码片段和mac dev论坛。谢谢。你的代码非常接近,但你对块语法很感兴趣。块非常强大和有用,但语法确实很糟糕,我仍然不知道在开始使用它们2年后,就开始使用它了。块的可读性远不如C函数指针,这说明了很多 应该是这样的:
int main(int argc, char * argV[])
{
@autoreleasepool
{
[NSEvent addGlobalMonitorForEventsMatchingMask: NSKeyDownMask
handler: ^(NSEvent *event)
{
NSLog(@"%@",event.characters);
}
];
}
}
为了清晰起见,我将所有的开始括号和结束括号放在单独的行中。一个块需要用括号括起来,而您在调用addGlobalMonitorForEventsMatchingMask:handler:
顺便说一句,在Mac或iOS程序上更改main()函数是非常不寻常的。通常,您不需要更改main()函数,然后设置应用程序对象,设置委托,然后将自定义代码放入应用程序委托中
您应该开始为应用程序使用普通的Cocoa设计模式,而不是试图抛弃它们
如果你想使用C风格的main(),你应该考虑创建一个交互式应用程序的命令行工具。如果你不遵循标准模式,你会把自己设置为失败。出错的方法太多了
您的main缺少创建工作iOS或Mac应用程序所需的内务管理这段代码到底有什么问题?我在[NSEvent AddGlobalMonitor…行,但是弄乱了它,使用代码片段,它似乎给出了相同的错误,或者没有错误,只是构建失败了。非常感谢。我只是想看看在目标C中这样做有多困难,这就是为什么要将它放在主方法中,但出于某种原因,我仍然得到一个构建失败,没有错误显示任何错误的行。在左侧,我得到一个“\u OBJC\u CLASS\u$\ u NSEvent”,引用自:error和一个链接器命令失败,退出代码为1(使用-v查看调用),这似乎使构建失败。我还应该将代码放一会儿(true),谢谢。