如何让NSTextField成为真正的单行?
我以编程方式创建了一个文本字段。按下返回键时,将选择所有文本。但我仍然可以粘贴多行文字。当我向右箭头或向下箭头按下时,它会滚动到下一行。
如果我使用IB并设置“使用单行模式”,则没有这些问题,但我找不到以编程方式设置它的正确方法。
答案 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/