如何手动启用或禁用键盘上的 Return 键?

Posted

技术标签:

【中文标题】如何手动启用或禁用键盘上的 Return 键?【英文标题】:How can I manually enable or disable the Return Key on the keyboard? 【发布时间】:2012-02-24 23:15:47 【问题描述】:

我有一个UITextView,它接收来自键盘的输入。 “自动启用返回键”复选框被选中,所以当UITextView 为空时,返回键被禁用。

我在键盘上方有一个表情符号栏,可以将表情符号添加到UITextView,但问题出在这里;当UITextView 为空时,我向UITextView 添加表情符号,如下所示:

[inputTextView insertText:@"\ue40d"];

那么 ReturnKey 仍然被禁用,虽然 UITextView 的 text 属性不为空。

我在插入表情后试过这个:

[inputTextView setEnablesReturnKeyAutomatically:NO];

没有结果。看起来启用/禁用键盘的返回键只能通过通过键盘输入字符来触发。

知道如何手动启用/禁用 Return 键吗?

【问题讨论】:

如果您在其中输入普通文本,它会按预期工作吗? 【参考方案1】:

这有点小技巧,但您可以尝试通过粘贴板插入文本:

UIPasteboard* generalPasteboard = [UIPasteboard generalPasteboard];

// Save a copy of the system pasteboard's items
// so we can restore them later.
NSArray* items = [generalPasteboard.items copy];

// Set the contents of the system pasteboard
// to the text we wish to insert.
generalPasteboard.string = text;

// Tell this responder to paste the contents of the
// system pasteboard at the current cursor location.
[textfield paste: nil];

// Restore the system pasteboard to its original items.
generalPasteboard.items = items;

// Free the items array we copied earlier.
[items release];

【讨论】:

【参考方案2】:

你可以使用

textField.setValue(isEnabled, forKeyPath: "inputDelegate.returnKeyEnabled")

里面的狐狸例子

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool

【讨论】:

【参考方案3】:

取消选中“自动启用返回键”

【讨论】:

以上是关于如何手动启用或禁用键盘上的 Return 键?的主要内容,如果未能解决你的问题,请参考以下文章

禁用iOS键盘中的输入按钮

联想ThinkPad笔记本键盘上的各个快捷键的用途,以及如何开启

禁用TextView键盘中的Return键

怎样禁用键盘的某个特定按键

如何立即禁用对软删除或不再启用的用户的访问?

从 Mac 上的命令行启用/禁用 Fn 键