objective-c - 不使用任何可见控件从 iOS 屏幕键盘接收按键输入

标签 objective-c ios cocoa keyboard-events

我的编程背景来自 C 和一些 C++ 编程,最近几年重点关注 C#。

我对 Cocoa 和 ObjectiveC 编程非常陌生(更不用说 Mac 的东西了),并且我正在开发一个 iPad 应用程序。

我想从标准屏幕键盘获取键盘代码,但不使用任何(至少可见)控件,例如文本字段。另外,我想在您按下按键后立即获取按键代码,检测按键按下和按键按下事件。

关于如何做到这一点有任何提示吗?

提前谢谢您 佩德罗·杜阿尔特

最佳答案

[编辑] 在看到你的问题中的按键按下和按键打开的想法后!!!

我知道如何捕获按下和按下事件的唯一方法是使用gestureRecognizer对象,或者在其中编写您自己的自定义代码

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

问题是您无法用自己的键盘触摸事件结构来覆盖自然键盘触摸事件结构,以便能够单独捕获向上和向下事件。这就是真正悲伤的部分。为了做到这一点,您很可能必须使用我上面提到的例程创建自己的键盘以及事件结构,因为即使是gestureRecognizer对象也不够精细,无法分别为您提供向下和向上事件。

[原始] 执行此操作的方法是当您希望进行键盘输入时,在屏幕上放置一个不可见的 UITextField。

然后,您将实现部分或全部 UITextField 委托(delegate)方法,以在编辑结束时、期间等时抓取文本...

这里有几个 SO 链接可以帮助您入门!

//下面实现了一个自定义键盘功能,将文本输入限制为 float 字(不是科学或任何东西,只是带有单个句点的简单 float ),并将文本重新放回到启动输入的可见 UITextField 上.

Need a robust solution to keyboard entry of an integer value in Settings bundle

通过下面的代码,当用户点击 UISegmentedControl 的元素时(因为他们希望更改按下的元素中的文本),会在代码中动态创建 UITextField。 UITextField 变得不可见,并且文本将应用于 UISegmentedControl 项的文本。

Change title of segmented control with edit button?

人们不必以这种方式实现它。您可以静态定义您的 UITextField,使其不可见(在屏幕上),并且仅在您希望更改其文本的对象被点击时才激活它的键盘,等等...

关于objective-c - 不使用任何可见控件从 iOS 屏幕键盘接收按键输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11083029/

相关文章:

ios - 为 objective-c 中的指定字符串创建正则表达式

objective-c - Objective-C : Using code to add a toolbar to a UITableView (within a Navigation Controller)

ios - UITabBar 不改变其背景颜色

objective-c - 检查文件大小是否发生变化

cocoa - 提前返回/退出时 @autoreleasepool {} 是否会耗尽?

ios - 捕捉固定步数的 UISlider(如 iOS 7 设置应用程序中的文本大小)

ios - 观看扩展 NSBundle URLForResource 始终为零

ios - Swift 协议(protocol)不触发 Objective C 协议(protocol)方法

ios - 发布到 Apple 商店时遇到问题

objective-c - 将用户输入发送到 url 并获取结果并将其显示在 cocoa Objective C 的程序中