gpt4 book ai didi

objective-c - NSTextView 没有光标,如果它是空的

转载 作者:搜寻专家 更新时间:2023-11-01 05:31:27 24 4
gpt4 key购买 nike

使用一系列 NSTextView,与单个 NSLayoutManager 连接。很常见的配置。每次用户点击 Enter 时,都会创建新的 NSTextView。换句话说,每个段落都在它自己的 NSTextView 实例中。

但我已经为这个问题苦苦挣扎了好几天:如果链中的最后一个 NSTextView 是空的(比如,用户只是按下 Enter 键并将光标移回先前 TextView 中的某处),那么当返回这个空的时光标消失 TextView 。如果我用鼠标点击,我必须在空 TextView 中点击两次,所以光标出现。如果我用箭头键移动光标,那么我必须再次按箭头键两次。

我试过更新游标,但没有任何反应。如果 TextView 为空并且是系列中的最后一个,则会发生此问题。我应该在哪里找到答案?搜索了这个论坛、Apple 文档、用谷歌搜索——什么都没有。

创建第一个 TextView

let textContainer = NSTextContainer(containerSize: containerSize)
layoutManager.addTextContainer(textContainer)
let textView = NSTextView(frame: frame, textContainer: textContainer)
someView.addSubview(textView)

创建第二个 TextView

let anotherTextContainer = NSTextContainer(containerSize: containerSize)
layoutManager.addTextContainer(anotherTextContainer)
let anotherTextView = NSTextView(frame: anotherFrame, textContainer: anotherTextContainer)
someView.addSubview(anotherTextView)

现在运行,输入一些内容并按 Enter。现在,如果您向上移动光标然后再向下移动,它将不会显示。你必须再次按下键,然后光标会出现。与鼠标相同:您必须左键单击两次,只有在这之后光标才会显示在第二个 TextView 中。

示例如下:https://www.dropbox.com/s/47domcy0nuisncc/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%202014-06-28%2013.37.58.png

这是一个示例项目:https://www.dropbox.com/s/aw01oo0faajr4rn/Test.zip .我是从头开始制作的,当你按下 Enter 键时,它会放置第二个 TextView ,你可以看到,即使在一个新的干净项目中也会出现这个问题。

最佳答案

这看起来像是 Apple 工程师的错误。在其他应用中发现了相同的行为。

关于objective-c - NSTextView 没有光标,如果它是空的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24466001/

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