小编Sha*_*nce的帖子

Java构造函数扩展

当我扩展一些类时,例如:

public class First {
    int id;
    public First(int _id) {
        id = _id;
    }
}
Run Code Online (Sandbox Code Playgroud)

public class Second extends First {

}
Run Code Online (Sandbox Code Playgroud)

当我只需要做同样的事情时,我必须重新声明第二类的构造函数.我可以:

public Second(int _id) {
    super(_id);
}
Run Code Online (Sandbox Code Playgroud)

但每次我更改父构造函数时,都需要编辑所有扩展类的构造函数.

如何完全扩展构造函数?

该死的,不要告诉我手机和天线,我多次使用过OOP.

现在我只问 - 我不能在扩展类上编写公共Class(){}并使用父构造函数吗?

好像我不能.好的.

java

4
推荐指数
2
解决办法
1万
查看次数

以编程方式将视图添加到NSStackView后,视图无法正确显示

所以,我正在尝试向NSStackView添加一些视图(在此示例中为NSTextField):

我已将NSStackView实例添加到XIB文件中,并将其作为小部件链接到文档中.在... didLoadNib我这样做:

NSTextField *tf = [[NSTextField alloc] init];
tf.stringValue = @"124";
[tf setFrameSize:NSMakeSize(100, 20)];
[widgets addView:tf inGravity:NSStackViewGravityLeading];
NSLog(@"%f - %d", NSHeight(tf.frame), [tf hasAmbiguousLayout]);

NSTextField *tf2 = [[NSTextField alloc] init];
tf2.stringValue = @"123";
[tf2 setFrameSize:NSMakeSize(100, 20)];
[widgets addView:tf2 inGravity:NSStackViewGravityLeading];
NSLog(@"%f - %d", NSHeight(tf2.frame), [tf2 hasAmbiguousLayout]);
Run Code Online (Sandbox Code Playgroud)

TextFields被放置在StackView中,但是它们被放置在相同的位置,即第二个完全重叠.我仍然可以先通过[space + tab]选择.

这是控制台输出:

2015-06-13 17:11:00.736 celty-test[62306:9217679] 20.000000 - 1
2015-06-13 17:11:00.739 celty-test[62306:9217679] Unable to simultaneously satisfy constraints:
(
    "<NSLayoutConstraint:0x608000084bf0 V:[NSStackViewSpacer:0x6080001834d0(>=8)]>",
    "<NSLayoutConstraint:0x608000084f10 V:[NSTextField:0x608000183330]-(0)-[NSStackViewSpacer:0x6080001834d0]>",
    "<NSLayoutConstraint:0x608000085460 V:[NSStackViewSpacer:0x6080001834d0]-(0)-[NSTextField:0x608000183400]>",
    "<NSAutoresizingMaskLayoutConstraint:0x608000084970 h=--& v=--& V:[NSTextField:0x608000183330]-(0)-| …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c nsstackview

2
推荐指数
1
解决办法
1694
查看次数

标签 统计

cocoa ×1

java ×1

nsstackview ×1

objective-c ×1