标签: nstextview

如何设置 NSTextView 的默认字体?

我正在使用禁用“富文本”选项的文本视图来显示一些纯文本。我找不到设置默认字体的方法。如果我在 IB 中输入一些文本(无论如何我都不想要),我可以在 IB 界面中设置字体,但是当用户删除字体并开始键入时,文本会更改为不同的字体和大小。我在这里阅读了一些问题和答案以及开发人员文档,但没有找到解决方案。

nstextview swift

2
推荐指数
1
解决办法
1864
查看次数

用于特殊文本编辑的对象

我需要一个特殊的文本字段,应该做以下的事情:

  • tab键支持
  • 当输入键被按下时发送动作
  • alt +输入换行
  • shift +输入换行

我不知道该用什么.

NSTextView看起来不错,但是我无法在输入时设置操作并按Enter键导致换行

NSTextField没有tab键支持,shift-enter不起作用.

有任何想法吗?谢谢!

macos cocoa objective-c nstextfield nstextview

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

NSTextView 复制粘贴问题

在我的应用程序中,我有一个 NSTextView。如果我想使用键盘选择一些文本,我按 Command+c,它应该选择文本,然后 Command+v 应该粘贴所选文本。使用键盘,它不工作,但使用鼠标复制/粘贴工作。

此外,当我输入 Command+c 时,它会调用打印页面——看起来映射错误,但如何更正呢?

关于我需要设置什么才能让它由键盘处理的任何指示?

cocoa copy-paste objective-c nsview nstextview

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

NSTextView不会成为第一响应者

这是我的小测试应用程序的布局:

  1. AppDelegate拥有WindowController.
  2. WindowController拥有CustomTextContainerView.
  3. CustomTextContainerView拥有一个NSScrollView嵌入MyCustomTextView(NSTextView子类).

标准MainMenu和我的窗口控制器的xib 都相对空.我的窗口控制器-windowDidLoad看起来像这样:

- (void)windowDidLoad {
    [super windowDidLoad];
    // create CustomTextContainerView
    [[self window] setContentView:self.customTextContainerView];
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试做的是将第一个响应者设置为textView,但我已经尝试了我能想到的所有内容以使其工作.

我做了这么CustomTextContainerView只是转发-becomeFirstResponder到其TextView的.我已经尝试直接在容器和textView上调用它,但我不能让它自动成为第一响应者.

注意:用户仍然可以单击文本区域并开始键入,但我要做的是自动设置第一响应者状态,因此在开始键入之前我不必单击.我错过了什么?

cocoa nstextview first-responder

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

如何禁用NSTextView上的拖放?

我有一个NSWindowController包含几个NSViewControllers.我想普遍接受使用NSWindowController类的拖放事件,而不是被其他视图拦截NSTextView(包含在a中NSViewController)

如何判断NSTextView忽略拖放事件?

drag-and-drop nstextview nsviewcontroller nswindowcontroller

1
推荐指数
2
解决办法
1003
查看次数

在NSTextViewDelegate和textViewDidChange不起作用的情况下侦听对NSTextView的更改

我希望用户每次对我的NSTextView进行更改时都触发一个函数。我让它可以在iOS应用程序中工作,现在正尝试使其在OS X应用程序中工作。我为NSTextView创建了一个出口,并编写了以下Swift代码:

import Cocoa

class ViewController: NSViewController, NSTextViewDelegate {

    @IBOutlet var textViewOutlet: NSTextView!

    func textViewDidChange(textView: NSTextView) {
        print("Text view changed!")
    }
}
Run Code Online (Sandbox Code Playgroud)

我没有任何错误,但我的声明没有打印。

cocoa nstextview swift

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

如何控制 NSTextView 中图像附件的大小

默认情况下,在 NSTextView 中,图像附件以其实际分辨率显示。对于大图像,这会导致视图中仅显示图像的一小部分。这看起来不太好,用户必须进行大量滚动才能在图像后输入文本。

例如,在下面的窗口中,您无法在文本视图中了解太多有关图像的信息。

NSTextView 中的默认图像大小

所以问题是:如何缩小图像附件,以便它们适合 NSTextView?

macos image nstextview

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

自定义 NSTextStorage:默认情况下不显示表情符号

我在自定义 NSTextStorage 子类中遇到表情符号问题。该类不存储传递给它的任何属性。相反,它生成自己的:

override func attributesAtIndex(location: Int, effectiveRange range: NSRangePointer) -> [String : AnyObject] {
    if range != nil {
        range.memory = NSMakeRange(0, self.string.length)
    }

    let attributes = [
        NSFontAttributeName: NSFont.systemFontOfSize(14)
    ]

    return attributes
}

override func setAttributes(attrs: [String : AnyObject]?, range: NSRange) {
    // does nothing
}
Run Code Online (Sandbox Code Playgroud)

这主要工作正常。但是,如果字符串中有任何表情符号,它们就不会出现。在检查 NSTextView 对文本存储的调用时,文本视图似乎试图在任何表情符号范围出现时将其字体属性设置为 AppleColorEmoji 字体。如果您依赖文本视图作为“属性真相”的来源,那很好,但我不希望我的程序像那样工作。就我而言,文本存储需要是任何属性的唯一供应商。它无法侦听文本视图发送的任何内容,属性方面。

我是否必须手动检测字符串中的任何表情符号并手动设置 AppleColorEmoji 字体?或者,还有更好的方法?我已经尝试过使用后备字体并自动搜索包含缺失字符的字体,但是使用这些方法似乎没有涵盖表情符号。

fonts nstextview emoji nstextstorage textkit

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

如何从 Swift 中的 NSTextView 获取选定的字符串?

如何从 Swift 中的 NSTextView 获取选定的字符串?

// create a range of selected text
let range = mainTextField.selectedRange()

// this works but I need a plain string not an attributed string
let str = mainTextField.textStorage?.attributedSubstring(from: range)
Run Code Online (Sandbox Code Playgroud)

也许我必须添加一个中间步骤,获取完整的字符串,然后对其应用范围?

xcode cocoa nstextview swift macos-sierra

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

NSTextView 滚动

如何制作NSTextView可滚动的?

问题:

  • 显示文本视图但不可滚动。我必须调整窗口大小才能看到更多内容

题:

  • 如何使文本视图可滚动。

代码:

class ViewController: NSViewController {

    private let textView                = NSTextView()

    //MARK: Manage Views

    override func viewDidLoad() {
        super.viewDidLoad()

        setupTextView()
    }


    private func setupTextView() {

        textView.isEditable      = false

        view.addSubview(textView)

        textView.translatesAutoresizingMaskIntoConstraints = false

        textView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        textView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
        textView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
        textView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
    }
}
Run Code Online (Sandbox Code Playgroud)

macos cocoa nstextview swift

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

设置NSTextView的字体

我是NSTextView的子类,设置它的默认字体:

PTNfoEditField.h

@interface PTNfoEditField : NSTextView {

}

@end
Run Code Online (Sandbox Code Playgroud)

PTNfoEditField.m

@implementation PTNfoEditField

-(id)init {
    if(self = [super init]) {
        [[self textStorage] setFont:[NSFont fontWithName:@"Courier" size:10]];
    }

    return self;
}

@end
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,我不知道如何以不同的方式做到这一点.谁能帮我?谢谢.

fonts cocoa nstextview

0
推荐指数
1
解决办法
1985
查看次数

如何在NStextview中选择粗体?

使用setFont:范围:?但我想在这里做的只是选择粗体,因为选择可能有不同的字体属性,所以,任何人都可以这么说?

fonts cocoa bold nstextview

0
推荐指数
1
解决办法
1850
查看次数

从OSX上的版本浏览器恢复狮子不工作......想法?

我正在尝试从Lion上的先前版本恢复基于文档的应用程序.当我选择"恢复版本"时,文本视图不会反映更改.但是,如果我关闭应用程序并重新打开,则会发生更改.

我正在使用NSDocument的文件包装器变体,那么如何使文本视图的文本存储反映出立即选择的版本?我错过了什么吗?

cocoa autosave nstextview osx-lion

0
推荐指数
1
解决办法
685
查看次数