标签: nstextview

当NSTextView失去焦点时,我怎么知道?

我想NSTextView在失去焦点之后清除选择.我怎样才能做到这一点?提前致谢!

凯.

cocoa focus objective-c nstextview

8
推荐指数
1
解决办法
2913
查看次数

未调用NSTextField自动完成委托方法

我实现了以下委托方法NSTextField来添加自动完成支持:

- (NSArray *)control:(NSControl *)control
            textView:(NSTextView *)textView
         completions:(NSArray *)words
 forPartialWordRange:(NSRange)charRange
 indexOfSelectedItem:(NSInteger *)index
Run Code Online (Sandbox Code Playgroud)

问题是这个方法永远不会被调用.我可以验证delegateNSTextField正确设置,因为其他的委托方法,他们应该发挥作用.

cocoa objective-c nstextfield nstextview nscontrol

8
推荐指数
1
解决办法
3355
查看次数

NSTextView的自定义插入点

我通过覆盖更改插入点大小-(void)drawInsertionPointInRect:(NSRect)aRect color:(NSColor *)aColor turnedOn:(BOOL)flag,但它不处理第一次闪烁(当您移动插入点时,它会恢复正常)

我设法通过重写私有方法来处理第一次闪烁- (void)_drawInsertionPointInRect:(NSRect)aRect color:(NSColor *)aColor.

但这对我来说不是一个解决方案,因为重写私有方法将导致App Store下降.我希望该应用程序在App Store中.我看到像iAWriter和Writeroom这样的应用程序有一个自定义插入点,它们在App Store中.

有谁知道他们是如何设法做到这一点,或者更好的方式而不是覆盖私有方法?

谢谢.

- (void)_drawInsertionPointInRect:(NSRect)aRect color:(NSColor *)aColor
{
    aRect.size.width = 3.0;
    [aColor set];
    [NSBezierPath fillRect:aRect];
}

- (void)drawInsertionPointInRect:(NSRect)aRect color:(NSColor *)aColor turnedOn:(BOOL)flag
{
    if(flag) {
        aRect.size.width = 3.0;
        [aColor set];
        [NSBezierPath fillRect:aRect];
    }
    else {
        [self setNeedsDisplayInRect:[self visibleRect] avoidAdditionalLayout:NO];
    }
}
Run Code Online (Sandbox Code Playgroud)

customization cocoa caret nstextview

8
推荐指数
2
解决办法
1336
查看次数

在NSTextView示例中使用NSTextList的项目符号列表?

我想在NSTextView中解析用户输入,以便以" - "开头的行会自动启动项目符号列表.我需要对NSTextView.textStorage做什么来启用项目符号列表,以便在每个项目符号行后按Enter时自动显示下一个项目符号?

我已经找到了一些例子,但他们都手工插入子弹,所以我想知道let textList = NSTextList(markerFormat: "{box}", options: 0)如果你必须自己手动插入盒子符号是什么意思?

目前我正在尝试在一个自定义的NSTextView中实现这一点,并且重写shouldChangeTextInRange(affectedCharRange: NSRange, replacementString: String?)因此,一个简单的例子可以解决" - "启动一个自动项目符号列表的最简单的输入情况,将受到高度重视.

更新:

这是我目前使用的代码:

override func shouldChangeTextInRange(affectedCharRange: NSRange, replacementString: String?) -> Bool {
   super.shouldChangeTextInRange(affectedCharRange, replacementString: replacementString)

   if string == "-" && replacementString == " " {
      let textList = NSTextList(markerFormat: "{disc}", options: 0)
      let textListParagraphStyle = NSMutableParagraphStyle()
      textListParagraphStyle.textLists = [textList]
      let attributes = [NSParagraphStyleAttributeName: textListParagraphStyle]
      string = "\t\(textList.markerForItemNumber(0))\t"
      textStorage?.addAttributes(attributes, range: NSMakeRange(0, textStorage!.string.length))
      return false
   }
   else if affectedCharRange.location > 0 && replacementString …
Run Code Online (Sandbox Code Playgroud)

macos cocoa nstextview swift

8
推荐指数
1
解决办法
867
查看次数

NSST来自NSTextView插入点

我有一个NSTextView并要求插入点的坐标在用户交互时显示那里的视图.

有一个函数可以从NSPoint获取字符索引.我想知道是否有任何简单的方法可以做相反的事情?

谢谢你的帮助!

cocoa objective-c nstextview

7
推荐指数
1
解决办法
1693
查看次数

什么是Mac的等效"sizeWithFont:"方法?

sizeWithFont: 对iPhone 很熟悉.现在我正在尝试为Mac构建一个应用程序并需要类似的东西,但我不知道该怎么做:/

这就是我需要它的原因:我有一个显示一些文本的面板,我想调整它的大小,使其适合内容(a NSTextView).你会怎么做?

size macos nsstring nstextview

7
推荐指数
1
解决办法
2032
查看次数

如何在Objective-c中的子NSTextView焦点上围绕NSBox绘制焦点环

我在NSBox中有一个NSTextView.每当NSTextView获得焦点时,我想在NSBox上绘制焦点环,并在NSTextView失去焦点后立即移除焦点环.

谢谢,

cocoa nstextview focusrect nsbox

7
推荐指数
1
解决办法
789
查看次数

如何在NSTextView中使用SPACE而不是TAB

我只知道如何修改NSTextView中的选项卡宽度

NSMutableParagraphStyle *paragraphStyle = [[self defaultParagraphStyle] mutableCopy];
[paragraphStyle setTabStops:[NSArray array]];
[paragraphStyle setDefaultTabInterval: tabWidth]; 
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法在NSTextView中使用4个SPACES而不是TAB?

cocoa objective-c nstextview

7
推荐指数
1
解决办法
438
查看次数

保存和恢复 NSTextView 的位置

我希望能够保存 NSTextView 的当前文本和可见区域并恢复它。使用visibleRect和scrollRectToVisible:似乎会产生不一致的结果。如果我只是这样做:

- (void)restorePosition
{
    NSRect r = [self.textView visibleRect];

    [self.textView.layoutManager replaceTextStorage: self.textView.textStorage];
    [self.textView scrollRectToVisible: r];
}
Run Code Online (Sandbox Code Playgroud)

当视图距离顶部不到 85 行时,视图将保持在原位,但我走得越远,它就会变得越远。从顶部开始 200 行,最终为 277,在 300 行,最终为 408,依此类推。

如果没有replaceTextStorage,它也可以按预期工作,但替换文本并找到以前的位置才是重点。替换文本的某些问题会导致线矩形计算变得不稳定。

显然,我计划从实际应用程序中保存的对象获取新的visibleRect和textStorage,但这说明了最少代码的问题。

有任何想法吗?

scroll nslayoutmanager nstextview

7
推荐指数
1
解决办法
507
查看次数

NSTextView在文本容器插入内无法选择

我设置textContainerInsetNSTextView一些值.

self.textView.textContainerInset = NSMakeSize(10, 10);
Run Code Online (Sandbox Code Playgroud)

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

下面是您可以添加到空白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];
}
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c nstextview

7
推荐指数
1
解决办法
296
查看次数