小编pfa*_*ade的帖子

如何禁用NSDocument的窗口标题弹出窗口

我有一个基于NSDocument的应用程序启用了自动保存.

我想阻止这个弹出窗口显示: 自动保存弹出窗口

我试过从NSWindow的-title,-representedFilename和-representedURL返回nil,隐藏标题有效地隐藏了标题,但对向下的披露指标和弹出窗口没有影响.

有没有办法阻止弹出这个弹出窗口?

cocoa nsdocument nswindow

8
推荐指数
2
解决办法
743
查看次数

- [NSTextField intrinsicContentSize]始终具有未定义的宽度

我在这里拉毛.我在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不同的事情,我无法弄清楚是什么.

cocoa nstextfield autolayout

6
推荐指数
1
解决办法
1181
查看次数

NSTableView 在不使用 reloadData 的情况下重新加载组单元格?

有没有办法让基于视图的 NStableView 从其数据源/委托重新加载其组单元格?

  • reloadDataForRowIndexes:columnIndexes: - 尽管文档没有提及,但它仅适用于非组单元格
  • reloadData - 工作正常,但我想避免它,因为它对于我想做的事情来说有点矫枉过正。

对于这个问题,我有其他解决方案(例如对我想要更改的文本字段使用绑定,或者“手动”从表视图中获取单元格并更改其文本字段值)。

但这似乎很愚蠢,没有办法重新加载组单元格。

我是否遗漏了一些东西,或者我应该用它来归档雷达?

nstableview

5
推荐指数
0
解决办法
167
查看次数

NSStackView和具有固有内容大小的子视图

我有一个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不够?

cocoa autolayout nsstackview

3
推荐指数
1
解决办法
4761
查看次数