首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当UITextView是响应者时检测shift +返回键

当UITextView是响应者时检测shift +返回键
EN

Stack Overflow用户
提问于 2022-08-08 18:47:52
回答 1查看 90关注 0票数 1

我希望检测用户在外部键盘上是否只按“返回”键或按下UITextView键来执行两种不同的操作,而UITextView是响应程序。

当UITextView没有使用UIKeyCommands响应时,它就会工作。

代码语言:javascript
运行
复制
override var keyCommands: [UIKeyCommand]? {
        return [
            UIKeyCommand(input: "\r", modifierFlags: [], action: #selector(taskOne)),
            UIKeyCommand(input: "\r", modifierFlags: .shift, action: #selector(taskTwo)),
        ]
}

但是当UITextView被编辑时,它只是添加了一个新的行,并且没有检测到这些UIKeyCommands。

我怎样才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-08 23:18:28

覆盖按开始函数

代码语言:javascript
运行
复制
override func pressesBegan(_ presses: Set<UIPress>, with event:  UIPressesEvent?) {
    guard let key = presses.first?.key else { return }
    
    switch key.keyCode {
    case .keyboardReturn:
        if key.modifierFlags == .shift {
            taskTwo()
        } else {
            // not the state for plus you want, pass it
            taskOne()
        }
        super.pressesBegan(presses, with: event)
        break
    default:
        super.pressesBegan(presses, with: event)
    }
}

和重写func textView(_ textView: UITextView,shouldChangeTextIn范围: NSRange,replacementText文本: String) -> Bool

对于UITextViewDelegate

check this answer

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73282699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档