使用AutoLayout寻求一个简单的Mac OS NSTextView示例

时间:2014-02-05 18:29:28

标签: cocoa autolayout nstextview

经过多次阅读和实验,我仍然无法使用简单的TextView在Mavericks中使用Xcode 5.0.2在水平方向上完全调整大小。当窗口调整大小时它会部分调整大小,然后在包含长行的情况下停止,即使我的包含NSScrollView继续按预期调整大小(它有四个默认约束而没有水平滚动条)。

任何人都可以指向一个简单的代码/ IB + AutoLayout示例,最好只是一个窗口,其中只包含从IB模板库中拖入的NSTextView ---一个有效吗? Apple TextEdit示例代码几乎与此无关,尽管它可以很好地横向调整大小。此外,还有剪辑视图,我可以找到很少的信息。

任何其他提示赞赏。

感谢。

2 个答案:

答案 0 :(得分:1)

回答我自己的问题:

原来我的问题与AutoLayout无关,与NSTextView关系不大。这是我用来测试代码的文本文件!该文件由带有制表符分隔字段的记录组成。

事实证明,NSTextView附带了一个默认的NSParagraphStyle,其预定义的制表位以字符56结尾,而我的测试文件除此之外还有标签。因此,无论我多大程度地拉伸窗户,我的线都会在最后定义的标签处缠绕。

更改搜索字词后,我在以下链接中找到了所需内容:

Premature line wrapping in NSTextView when tabs are used

How to have unlimited tab stops in a NSTextView with disabled text wrap

浪费带宽的道歉。

答案 1 :(得分:0)

不确定为什么这么简单的事情在你的情况下不起作用,但不过我在Xcode中做的是让NSTextView跟随窗口调整大小:

  1. 创建一个新项目(不是基于我的案例的文档,但它确实没有什么区别)
  2. 将NSTextView从调色板拖到窗口。将所有四个边缘与窗口边缘对齐。
  3. 打开“添加约束”弹出窗口(IB视图右下角的分段控件中的第二个按钮。
  4. 四个间距约束中的每一个都应显示一个等于文本视图与容器窗口距离的数字。如果对齐它们,则此数字应为0或-1。单击每个箭头的向下箭头,然后选择“使用当前画布值”。为四个人做这件事。确保未选择其他约束。
  5. 点击面板底部的“添加约束”。
  6. 运行您的项目。您的textview应该使用窗口调整大小。
  7. 另外,正如Jay的评论所提到的,请确保您的观点中没有任何“剩余”约束。您可以通过观察Xcode的警告来检查这一点,也可以通过转到Size Inspector选项卡(Utilities栏上的第4个选项卡)来检查视图的约束来手动检查。

    如果您需要将文本视图排列在更复杂的布局中,则可能值得查看AutoLayout Guide