我有一个子类NSView,我想包含一个类似于Spotlight的可编辑NSTextField。NSMenuItem的自定义视图中的可编辑NSTextField
我很难让文本字段选择并突出显示。如果我在文本字段的编辑区域上快速点击,我实际上可以输入文本,但显示为灰色,好像我正在将文本添加到不是最重要的应用程序字段。
我试图使用viewDidMoveToWindow
来获得视图窗口的焦点,但显然NSMenuItem的窗口是碳窗口,不能很好地处理键。
长话短说,成功完成这项工作的好方法是什么?我知道Spotlight是一个无边框窗口,但这不适合我的目的。
任何和所有的建议将是非常有益的。
那么你是如何解决这个问题的?你显然不是在做苹果不建议的事 - 你只是试图复制Spotlight的工作方式,因为我现在明白了事情。 NSView是一个非常通用的“UI类”,在我看来它意味着被分类。如果你想创建一个脉动的状态栏项目,或者类似Apple对机场状态栏项目所做的那样,该怎么办?你的声明UI类不应该被分类太广泛,并且不合理。问题是,你会如何完成你想要的功能,你是怎么做到的? –
你在说什么?子分类的UI元素与未来版本的操作系统不兼容?这是我听过的最奇怪的事情。操作系统中的每一个控件都是一个子类化的UI元素!添加可扩展的NSView类的全部理由是拥有自己的自定义视图。我同意Dev的观点,你没有做Apple推荐的东西。事实上,Apple强烈建议您尽可能创建自定义视图。 – strange