使nstextfield单行

时间:2013-02-02 06:06:29

标签: cocoa interface-builder line multiline nstextfield

如何让NSTextField成为真正的单行?

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

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

2 个答案:

答案 0 :(得分:16)

您是否尝试过将the field's cell告诉set whether it uses single-line mode

[myTextField.cell setUsesSingleLineMode:YES];

答案 1 :(得分:6)

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

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

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

  

逐步弃用NSCell

     

Mac OS X 10.10向最终弃用迈出了新的一步   细胞。不鼓励直接访问控件的单元格   允许它的方法将在随后正式弃用   发布。各种细胞级API已被推广到各种各样的   控制子类以便提供重要的无细胞访问   功能。 NSLevelIndicator,NSTextField,NSSearchField,NSSlider,   和NSPathControl都有为此目的的新属性。基于细胞的   NSTableViews现已弃用,基于视图的NSTableViews应该是   用来代替。基于矩阵的NSBrowser也被弃用了   基于项目的界面。

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