我有一个基于NSDocument的应用程序启用了自动保存.
我想阻止这个弹出窗口显示:
我试过从NSWindow的-title,-representedFilename和-representedURL返回nil,隐藏标题有效地隐藏了标题,但对向下的披露指标和弹出窗口没有影响.
有没有办法阻止弹出这个弹出窗口?
我在这里拉毛.我在xib上创建了一个NSTextField,它的内部调整大小调整为它的stringValue.
如果我以编程方式创建textField,如下所示:
_textfield = [[NSTextField alloc] initWithFrame:CGRectZero];
_textfield.translatesAutoresizingMaskIntoConstraints = NO;
_textfield.alignment = NSCenterTextAlignment;
_textfield.drawsBackground = NO;
[_textfield setBordered:NO];
_textfiled.stringValue = @"Test"
Run Code Online (Sandbox Code Playgroud)
它始终是intrinsicContentSize (width=-1, height=16)
我试过调用invalidateIntrinsicContentSize但无济于事......
如何让NSTextField的intrinsicContentSize工作?我必须做一些与xib不同的事情,我无法弄清楚是什么.
有没有办法让基于视图的 NStableView 从其数据源/委托重新加载其组单元格?
对于这个问题,我有其他解决方案(例如对我想要更改的文本字段使用绑定,或者“手动”从表视图中获取单元格并更改其文本字段值)。
但这似乎很愚蠢,没有办法重新加载组单元格。
我是否遗漏了一些东西,或者我应该用它来归档雷达?
我有一个NSStackView以编程方式创建,并向其中添加了一个NSButton。
NSStackView *stackView = [[NSStackView alloc] initWithFrame:rect];
stackView.autoresizingMask = NSViewWidthSizable|NSViewHeightSizable;
stackView.alignment = NSLayoutAttributeBaseline;
(...)
NSButton *button = [[NSButton alloc] initWithFrame:CGRectMake(0, 0, 40, 50)];
button.image = item.image;
button.title = item.name;
button.bordered = NO;
button.imagePosition = NSImageAbove;
button.translatesAutoresizingMaskIntoConstraints = NO;
(...)
[stackView addView:button inGravity:NSStackViewGravityLeading];
Run Code Online (Sandbox Code Playgroud)
我期望这已经足够,因为按钮具有固有的内容大小(我检查了它是否返回了适当的值)。
检查视图层次结构,我可以看到按钮框是origin =(x = 0,y = 0)size =(width = 40,height = 50),其超级视图(NSStackViewContainer的一个实例)是origin = {x = 0 ,y = 0)size =(width = 0,height = 0),而NSStackView是origin =(x = 0,y = 0)size =(width = 400,height = 50)。
如您所见,NSStackViewContainer的宽度和高度为0 ...
如果我在按钮上添加了宽度和高度限制,则一切正常。为什么按钮的internalContentSize不够?