20

如何使 NSTextField 真正单行?

我以编程方式创建了一个文本字段。当按下返回键时,所有文本都被选中。但我仍然可以粘贴多行文本。当我按右箭头或下箭头时,它会滚动到下一行。

如果我使用 IB 并设置“使用单行模式”,则不存在这些问题,但我找不到正确的方法来以编程方式设置它。

4

2 回答 2

19

您是否尝试过告诉该字段的单元格设置它是否使用单行模式

[myTextField.cell setUsesSingleLineMode:YES];
于 2013-02-03T16:34:23.887 回答
11

在以编程方式创建控件时,这对我有用:

[myTextField.cell setWraps:NO];
[myTextField.cell setScrollable:YES];

请记住,自 OS X 10.10 引入以来,不鼓励直接访问 NSControl 的单元格:

逐步弃用 NSCell

Mac OS X 10.10 朝着最终弃用单元格又迈出了一步。不鼓励直接访问控件的单元格,并且允许它的方法将在后续版本中正式弃用。为了提供对重要功能的无单元访问,已将各种单元级 API 提升到各种 Control 子类。NSLevelIndicator、NSTextField、NSSearchField、NSSlider 和 NSPathControl 都有用于此目的的新属性。现在不推荐使用基于单元格的 NSTableView,而应该使用基于视图的 NSTableView。基于矩阵的 NSBrowsers 也被弃用,取而代之的是基于项目的界面。

https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKit/

于 2015-01-06T12:53:28.400 回答