【问题标题】:NSTextView not selectable within text container insetNSTextView 在文本容器插图中不可选择
【发布时间】:2015-11-05 01:01:13
【问题描述】:

我正在将NSTextViewtextContainerInset 设置为一些值。

self.textView.textContainerInset = NSMakeSize(10, 10);

如何使插入区域中的文本视图可选择?文本光标出现,但如果我尝试选择此插图中的文本区域,则没有任何反应。

这里是您可以添加到空白 Cocoa 应用程序项目以查看此行为的其他示例代码。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    NSTextView *textView = [[NSTextView alloc] initWithFrame:self.window.contentView.bounds];
    textView.string = @"1\n2\n3\n4\n5";
    textView.textContainerInset = NSMakeSize(10, 10);
    [self.window.contentView addSubview:textView];
}

【问题讨论】:

  • textView本身的属性是什么,是否启用编辑功能?
  • 是的,它已启用编辑功能。如果我注释掉所有其他设置属性,它仍然表现出相同的行为。
  • textView 有多大?我问的原因是我有很多小的文本视图,在 X 和 Y 方向上偏移 10 很可能使它看起来好像在 VIEWABLE 区域之外。
  • 这是一个大文本视图。光标在选择文本视图之前必须接触到字母,但是当光标位于文本容器插图内时,光标会变为文本光标。

标签: objective-c cocoa nstextview


【解决方案1】:

似乎 NSTextView 非常相信它的插图,以至于它从 hitTest 返回 nil 以用于插图区域上的事件。

对我有帮助的是覆盖hitTest 并在这些情况下返回self,然后TextView 将正确处理此类事件。

有点冒险的解决方案,但似乎有效。

【讨论】:

    猜你喜欢
    • 2011-07-15
    • 2011-05-17
    • 2017-01-24
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多