NSTextField - 使所选文本变为粗体,斜体或下划线?

Ras*_*yrk 3 cocoa objective-c nstextfield

我有一个NSTextField,用户可以在其中编写文本.我希望能够制作3个按钮:粗体,斜体和下划线; 这些按钮应将文本字段中的用户选择更改为粗体,斜体或下划线.

任何人都可以给我一个如何做到这一点的指针?

sid*_*yll 7

第一件事是启用富文本支持,您可以通过检查检查器中的"富文本"选项或使用代码在Interface Builder中执行此操作setAllowsEditingTextAttributes:.

那就是NSAttributedStrings.

但最大的问题是,您需要对所选文本应用更改.NSTextFields 是不可能的.只有NSTextViews.

如果您可以更改它,请继续操作,这将使事情变得更容易.但是,如果您确实需要坚持使用NSTextField,则可能需要访问字段编辑器.每个窗口都有一个关联,它是幕后文本的处理方式.

NSTextView *editor = (NSTextView *)[window fieldEditor:YES forObject:myTextField]
Run Code Online (Sandbox Code Playgroud)

然后你可以setSelectedTextAttributes:愉快地调用NSTextView的方法.

在AppleCocoaDev中阅读有关字段编辑器的更多信息