【问题标题】:NSTextView wont update unless I click on it, and it wont focus. Any ideas?NSTextView 不会更新,除非我点击它,它不会聚焦。有任何想法吗?
【发布时间】:2011-04-16 03:23:17
【问题描述】:

我现在没有时间放一些示例代码,(明天我会编辑我的问题并添加一些)但基本上发生的事情是我有一个窗口。它通常工作正常,但如果我使用

 [myWindow setStyleMask:NSBorderlessWindowMask]

为了使其无边界,它包含的 NSTextView 将停止获得焦点,即使您单击它:圆环永远不会出现,光标不会改变,滚动条将保持灰色。

当我让它无边界时发生的其他事情是它不会更新!我基本上有这个

 [lyricsView setString:someString];

更新其中的字符串。控制台没有标记我任何错误,但除非我单击它,否则该字符串不会出现在文本视图中。

如果我删除将styleMask 设置为无边界的行,所有这些都将停止。有任何想法吗?建议?评论?干杯?

谢谢! 凯文

【问题讨论】:

标签: objective-c cocoa xcode nswindow nstextview


【解决方案1】:

来自 NSWindow 的文档:

如果窗口有标题栏或调整大小栏,则 NSWindow 实现返回 YES,否则返回 NO。

所以子类化你的窗口并添加这一行

   -(BOOL)canBecomeKeyWindow
   {
        return YES;
   }

【讨论】:

  • 确实!就像您在此处所做的那样,我创建了一个类别来覆盖该方法,并且它起作用了!现在不仅窗口可以获得焦点,而且文本字段也可以获得焦点,并且可以正常更新。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-04-30
  • 2019-12-21
相关资源
最近更新 更多