当我看到Babel编译的代码时,它们似乎并不等同.实际上,前者转化为exports.A = A,不等于module.exports = A(也许是module.exports.A = A?)
那么有ES6风格module.export =吗?或者语法仍然在ES6中?或者在ES6中不再推荐使用该语法?
我在Swift中编写一个函数来检测我点击的六边形.但是我遇到了一个特殊的错误消息,指出我不能添加两个CGFloats.无论我做了,例如改变let到var,申报并分别分配,没有工作.我想一定有别的错误,但我找不到.代码如下:
func pointToCoordinate(position: CGPoint) -> (Int, Int) {
var gridHeight = 2 * singleRadius / sqrt(CGFloat(3)) * 1.5
var gridWidth = 2 * singleRadius
var halfWidth = singleRadius
var relativePosition = CGPoint(x: position.x - totalRadius / 2, y: position.y - totalRadius / 2)
println((relativePosition.y / gridHeight))
var row = -(cgfloatToInt)(relativePosition.y / gridHeight)
var column: Int
println((relativePosition.x + halfWidth * CGFloat(row + 1)) / (gridWidth))
column = cgfloatToInt((relativePosition.x + halfWidth * CGFloat(row + 1)) / (gridWidth))
// …Run Code Online (Sandbox Code Playgroud) 我有一个主窗口的xib,我在以下步骤中创建了一个自定义视图:
NSView.MyView.h:
#import <Cocoa/Cocoa.h>
IB_DESIGNABLE
@interface MyView : NSTableCellView
@end
Run Code Online (Sandbox Code Playgroud)
MyView.m:
#import "MyView.h"
@implementation MyView
- (void)awakeFromNib {
NSLog(@"Post view awaking from nib.");
}
@end
Run Code Online (Sandbox Code Playgroud)
我尝试在主窗口中使用此自定义视图,执行以下步骤:
但没有任何东西呈现.从日志中,我可以看到awakeFromNib自定义视图类中的代码已执行.当我将类设置IB_DESIGNABLE为时,视图在主窗口的xib中变空,与我设计的不同.
我尝试将自定义视图的xib的文件所有者设置为自定义类,但没有任何更改.
我想问题是,自定义视图的xib文件实际上并未加载.当我用谷歌搜索它时,似乎很少有关于这个确切主题的参考文献.那么,我该如何实现这一目标呢?即,在IB中设计一个视图,在类中实现它的方法,将这两个方法关联起来,并将其公开,就像系统视图一样,用于其他xibs?
更新:
我找到了一个教程,并意识到我缺少的东西(在构建时正确渲染视图).我必须从xib中的视图添加一个插座到视图类:
@property (nonatomic, strong) IBOutlet NSView *view;
Run Code Online (Sandbox Code Playgroud)
,然后在(id)initWithCoder:(NSCoder *)coder方法中加载它.
[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self topLevelObjects:nil];
[self addSubview:self.view];
Run Code Online (Sandbox Code Playgroud)
但是视图仍然不会在界面构建器中呈现.
当我使用自定义视图作为基于视图的NSTableView的单元格时,自定义视图稍微低于表格行.当我单击它时,不是影响元素(例如文本字段)自定义视图,而是选择(并突出显示)表格行.我必须重新点击才能选择文本字段.
- (NSView*)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
NSLog(@"We are creating views!");
NSTableCellView *newView;
newView = [tableView makeViewWithIdentifier:@"PostCell" owner:self];
NSTextField *newTextField = [[NSTextField alloc] init];
[newView addSubview:newTextField];
return newView;
}
Run Code Online (Sandbox Code Playgroud)
当我根据NSTableView - 禁用行选择禁用行选择时,没有选择.
- (BOOL)selectionShouldChangeInTableView:(NSTableView *)tableView {
return NO;
}
Run Code Online (Sandbox Code Playgroud)
但我仍然无法直接选择文本字段.更糟糕的是,我甚至无法使用鼠标选择它.只tab在键盘上工作.
似乎有一些东西在它上面.但它是界面构建器中显示的"表列"吗?或者是其他东西?
我怎样才能解决这个问题?
我正在尝试编写一个允许我转换(a, b, c, d)为(a, a + b, a + b + c, a + b + c + d)等的宏
.这是我到目前为止所得到的:
macro_rules! pascal_next {
($x: expr) => ($x);
($x: expr, $y: expr) => (
($x, $x + $y)
);
($x: expr, $y: expr, $($rest: expr),+) => (
($x, pascal_next!(
$x + $y, $($rest),+
)
)
);
}
Run Code Online (Sandbox Code Playgroud)
但是,存在实际输出的问题(a,(a + b,(a + b + c,a + b + c + d))).原点是第二个匹配规则($x: expr, $y: expr) => (($x, $x …
有一个具有以下形状的外部模块声明:
declare module "external-module" {
namespace SomeNS {
namespace SubNS {
// some functions.
function someFunc(): void;
}
}
exports = SomeNS;
}
Run Code Online (Sandbox Code Playgroud)
我可以作为一些功能SomeNS.subNS.someFunc()。但是,现在我发现了一种方法,function methodMissingDefinition() {}缺少其定义,我想在我的代码中修复它而不修改第三方声明。
有什么花招让我做到这一点吗?
还是不可能做到这一点,唯一的方法是敦促作者修正声明?
我是否需要一个超宽的容器并将元素设置为内嵌显示或浮动或其他什么?如果我有两排,每排高50%怎么办?
如果元素的数量未确定怎么办?如何确定容器宽度?
div似乎很难.我必须用桌子吗?
而且,在纯粹的CSS中看起来非常难,因为它同时难以控制相对宽度和高度.我必须使用JS吗?
这样做最简单,最优雅的方法是什么?
目前的版本似乎并不顺畅和快速.即使是简单的应用程序也会落后于普通手机(iPhone除外).
那是因为没有启用硬件加速吗?或者只是手机的硬件不够好?
如果我想要硬件加速,我是否需要编辑源代码?
代码如下:
function showVote(ev, poster) {
$mdDialog.show({
// var parentDOM = document.getElementById("poster-page");
parent: angular.element(document.getElementById("poster-page")),
controller: posterVoteController,
templateUrl: 'view/poster_vote_tmpl.html',
targetEvent: ev,
locals: {
poster: poster
}
});
}
function posterVoteController($scope, $mdDialog, poster) {
var vm = this;
vm.test = "TEST!";
}
Run Code Online (Sandbox Code Playgroud)
当我访问它时{{posterVoteController.test}},没有任何东西出现.只有当我写作$scope.test = "TEST!"和访问{{test}}它才会起作用.
在这种情况下编写控制器的正确方法是什么?还有一个问题,我该如何使用controller as alias语法?我在哪里写的?
代码:
struct Tag {
std::string left_tag, right_tag;
};
Run Code Online (Sandbox Code Playgroud)
当我尝试使用时this->_tags[__tag] = true;,出现错误:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__functional_base:63:21: error: invalid operands to binary expression ('const Tag' and 'const Tag')
{return __x < __y;}
~~~ ^ ~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/map:1207:17: note: in instantiation of member function 'std::__1::less<Tag>::operator()' requested here
if (__tree_.value_comp().key_comp()(__k, __nd->__value_.__cc.first))
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/map:1376:36: note: in instantiation of member function 'std::__1::map<Tag, bool, std::__1::less<Tag>, std::__1::allocator<std::__1::pair<const Tag, bool> > >::__find_equal_key' requested here
__node_base_pointer& __child = __find_equal_key(__parent, __k);
^
/Users/xxx/GitHubWorking/MarkupUtils/Syntax.h:69:20: note: in instantiation of member function 'std::__1::map<Tag, bool, std::__1::less<Tag>, std::__1::allocator<std::__1::pair<const …Run Code Online (Sandbox Code Playgroud) angularjs ×2
objective-c ×2
c++ ×1
cgfloat ×1
cocoa ×1
css ×1
ecmascript-6 ×1
html ×1
javascript ×1
macros ×1
node.js ×1
rust ×1
sorting ×1
stl ×1
swift ×1
types ×1
typescript ×1
xcode ×1