objective-c – NSTextField(可可)的轨道选择范围更改

objective-c – NSTextField(可可)的轨道选择范围更改,第1张

概述有谁知道如何跟踪NSTextField的NSTextField.currentEditor.selectedRange值更改? 有这个奇妙的东西NSTextViewDidChangeSelectionNotification,它完全符合我的需要,但它只适用于NSTextView. 我试过和KVC / KVO玩,但我得不到我想要的东西.我认为我做错了什么. 我将尝试解释我需要实现的目标. 我有NST 有谁知道如何跟踪NSTextFIEld的NSTextFIEld.currentEditor.selectedRange值更改?

有这个奇妙的东西NSTextVIEwDIDChangeSelectionNotification,它完全符合我的需要,但它只适用于NSTextVIEw.

我试过和KVC / KVO玩,但我得不到我想要的东西.我认为我做错了什么.

我将尝试解释我需要实现的目标.

我有NSTextFIEld,下面我有一个标签,我想在上面的文本选择的NSTextFIEld.currentEditor.selectedRange中放置值.实时,即我想在选择文本区域的同时,通过选择长度和NSTextFIEld.currentEditor.selectedRange的起始位置连续更新我的标签内容.

解决方法 NSTextFIEld使用当前窗口的字段编辑器进行实际的文本编辑,这是一个NSTextVIEw.要在该文本视图上订阅NSTextVIEwDIDChangeSelectionNotification,您需要找出您的字段何时获得键盘焦点,然后询问它的currentEditor.

可悲的是,似乎controlTextDIDBeginEditing:永远不会被调用,但你可以覆盖becomeFirstResponder以获得相同的效果(一定要调用super).

我找不到取消订阅的好地方,因为文本字段只有一秒钟的键盘焦点,然后在创建和激活字段编辑器NSTextVIEw时丢失它.

所以最后,我正在做的是在创建视图时使用nil对象订阅通知,在dealloc中取消订阅,并在通知处理程序中检查notification.object == self.currentEditor是否忽略所有其他通知.

总结

以上是内存溢出为你收集整理的objective-c – NSTextField(可可)的轨道选择范围更改全部内容,希望文章能够帮你解决objective-c – NSTextField(可可)的轨道选择范围更改所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1011744.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存