textfield自动换行html,使用自动布局自动换行NSTextField
如何让自动布局自动将NSTextField换行为NSTextField的宽度更改为多行?使用自动布局自动换行NSTextField
我有许多NSTextField在检查器窗格中显示静态文本(即:标签)。由于用户调整了检查器窗格的大小,因此如果需要,我希望右侧标签可以重新排列成多行。
(Finder的获取信息面板做到这一点。)
但我一直无法弄清楚的自动布局约束的组合,以允许这种行为。在所有情况下,右侧的NSTextFields拒绝包装。 (除非我明确添加允许的高度约束)
视图层次结构是这样的:每个灰色带都是包含两个NSTextField的视图,左侧的属性名称和右侧的属性值。当用户调整检查器窗格的大小时,我希望属性值标签根据需要自动调整其高度。
现状:
我想什么有发生:
(请注意,这种行为比大多数堆栈溢出问题,不同的我遇到关于NSTextFields来到和自动布局,这些问题希望文本字段在用户输入时增长,在这种情况下,文本是静态的,并且NSTextField被配置为查看就像一个标签。)
更新1.0
以@ hamstergene的建议下,我子类的NSTextField,并提出了小样本应用程序。大多数情况下,它现在可以工作,但现在有一个小的布局问题,我怀疑是由于NSTextField的框架与自动布局所期望的不完全同步的结果。在下面的屏幕截图中,右侧标签全部在垂直方向上间隔排列,约束条件为top。当窗口调整大小时,Where字段得到正确调整和包装。然而,Kind文本字段不会被推下来,直到我调整窗口“多一个像素”。
例子:如果我调整窗口的大小,以恰到好处的宽度,该文本框Where做它的第一个包,然后我得到的中间图像中的结果。如果我调整窗口的大小再多一个像素,那么Kind字段的垂直位置就会被正确设置。
我怀疑这是因为自动布局正在通过,然后帧被明确设置。我想象一下,自动布局并没有看到那次通过,而是在下一次通过时做到这一点,并相应地更新位置。
假设是这个问题,我如何通知setFrameSize我正在做这些更改的自动布局,以便它可以再次运行布局。 (而且,最重要的是,不会陷入布局set-setSize-layout-recursive状态......)
解决方案
我拿出这似乎工作,我究竟是如何希望的解决方案。而不是继承NSTextField,我只是覆盖layout在NSTextField的superview。在layout内,我在文本字段上设置preferredMaxLayoutWidth,然后触发布局传递。这似乎足以让它主要工作,但它留下了令人讨厌的布局问题短暂“错误”。 (见上面的注释)。
解决方案似乎是打电话setNeedsDisplay,然后一切正常工作。
- (void)layout {
NSTextField *textField = ...;
NSRect oldTextFieldFrame = textField.frame;
[textField setPreferredMaxLayoutWidth:NSWidth(self.bounds) - NSMinX(textField.frame) - 12.0];
[super layout];
NSRect newTextFieldFrame = textField.frame;
if (oldTextFieldFrame.size.height != newTextFieldFrame.size.height) {
[self setNeedsDisplay:YES];
}
}
2014-07-07
kennyc
textfield自动换行html,使用自动布局自动换行NSTextField相关推荐
- HTML文件保存时关闭自动换行,如何禁止html自动换行
禁止html自动换行的方法:1.给html元素添加"display:inline"样式,将元素设置为行内元素:2.给html元素添加"float:left"样式 ...
- html style自动换行,如何适应宽度自动换行?_html/css_WEB-ITnose
aaa dddddddddddddddddddddddddddd aaa dddddddddddddddddddddddddddd 上面有没css的解决方案? 用js来适应的话过于复杂了,因为可能套很 ...
- html title自动换行,css控制文字自动换行的实现方法
自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是CSS如何实现换行的方法 对于div,p等块级元素 正常文字的换行(亚洲文字和非亚洲文字)元素拥 ...
- html怎样让文字自动换行,css中文字自动换行如何实现
css中文字自动换行如何实现 在div css布局中,遇到连续英文字母或连续数字在div.p.h2.h1等盒子里排成一排显示不会自动随盒子宽度限制而自动换行. 当然中文字在DIV或任意盒子中均会自动换 ...
- html p自动换行超出省略,CSS自动换行、强制不换行、强制断行、超出显示省略号...
CSS自动换行.强制不换行.强制断行.超出显示省略号 CSS自动换行.强制不换行.强制断行.超出显示省略号 CSS样式设置自动换行.强制不换行.强制断行.超出显示省略号 P标签是默认是自动换行的,因此 ...
- html中文本不自动换行,CSS禁止文本自动换行代码
使用CSS样式 white-space:nowrap 可以定义某个区域内的内容是否可自动换行,默认是可以的.如果设置的值为 nowrap 将禁止自动换行,如上图所示.内容超过窗体可显示的区域外时将在浏 ...
- html中文本不自动换行,css文字不自动换行怎么解决?
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. 文字不自动换行可 ...
- html字体变大自动换行,css 实现文字自动换行切同行元素高度自适应
1.实现div行内布局所有行跟随最大高度自适应 html代码样例: 所在部门 @ViewBag.decideDetail.departName 岗位 @ViewBag.decideDetail.pos ...
- delphi memo 行数 自动换行_大咖分享办公秘籍:Word和Excel换行
我们在日常办公和学习中,对文档进行整理和粘贴数据的过程中,经常会用到的就是换行功能了.那么怎么实现自动换行呢?下面,就由非凡学院商务办公培训专业的付老师,和大家分享一下在Word和Excel中简单的实 ...
最新文章
- FPGA 中的latch 锁存器
- 你一定听过这些不太标准的技术圈发音...
- codevs 5958 无
- 百度音乐下载地址解析
- c# SIM 卡拨号
- 离散数学第一章(知识点总结)
- 新版掌上阅读小说源码+支持公众号/分站/封装APP
- 矢量网络分析仪程控软件
- 怎么用计算机打游戏视频,网吧电脑可以边玩游戏边录视频吗?这样的方法很少人知道...
- PyTorch中view的用法
- 北京内推 | 秘塔科技招聘NLP算法工程师(社招校招可转正实习)
- linux磁盘满了删除docker文件夹,Docker磁盘空间使用分析与清理的方法
- 条码追溯系统解决外贸企业进销存管理
- linux 搭建 虚拟专用网络 (pptpd )
- Linux2.6.29设备模型分析-概述
- Selenium基于Python的web自动化测试框架(1)-环境搭建
- 论文解读:CRBPDL:使用集成神经网络方法识别 circRNA-RBP 相互作用位点
- WEBGUI中上一页(PgUp/Page Up)和下一页(PgDn/Page Down)键不起效
- 关于python 关于面向对象 关于magic method(魔方方法)
- 【系统分析师之路】第六章 多媒体基础知识
热门文章
- matplotlib绘制双柱状图
- opencv(c++)入门基础
- 8张JS 基础思维图,超详细!
- 展会回顾 | 2023元宇宙生态博览会圆满落幕,3DCAT荣获“元宇宙交互技术奖”
- C语言实现LRU缓存策略
- css: 使用线性渐变使图片变暗
- 三星p1000升级android10,三星 P1000 CM团队13.09.01定制 CM10.1 纯净版刷机包
- 最近很火的在线文件预览txt、doc、ppt、pdf、excel、jpg、png、zip、tar.gz等各种文件及压缩文件在线解压和预览,包括前后端设计和源码,编写搜索引擎多关键词检索名称和内容(五)
- Error resolving template
- 2023中国(上海)国际溴化工产业展览会