如何在界面构建器中实现用户可调整大小的视图,以便用户可以自己调整一些图像

我是否必须使用观察鼠标移动等的视图手动管理所有这些?
我对 Erlang 比较陌生,想写一个使用客户端证书来识别客户端的小型服务器。客户端应该能够使用任何公钥/私钥对,而无需将其作为证书链的一部分。我查看了 OTP 源代码中的 SSL 示例,并使用 make_certs.erl 创建了密钥对。我可以使用创建的客户端证书进行连接,但不能使用自签名证书。
如何在不验证的情况下获取客户端证书?
我的示例代码目前是:
-module(simple_server).
-export([start/0]).
keep_alive() ->
receive
Any -> io:format("Listening socket: ~p~n",[Any])
end.
start() ->
ssl:start(),
spawn(fun() ->
start_parallel_server(3333),
keep_alive()
end).
start_parallel_server(Port) ->
case ssl:listen(Port, [
binary,
{packet, 0},
{reuseaddr, true},
{active, true},
{certfile,"../etc/server/cert.pem"},
{keyfile,"../etc/server/key.pem"},
{cacertfile,"../etc/server/cacerts.pem"},
{verify,verify_peer},
{fail_if_no_peer_cert,true}
]) of
{ok,Listen} ->
spawn(fun() -> par_connect(Listen) end);
{error,Reason} ->
io:format("error ~p~n",[Reason])
end.
par_connect(Listen) ->
case ssl:transport_accept(Listen) of
{ok,Socket} ->
spawn(fun() -> par_connect(Listen) end),
ssl:ssl_accept(Socket),
print_cert(Socket),
get_request(Socket,[]);
{error,Reason} ->
io:format("Listening stopped (~p)~n",[Reason])
end. …Run Code Online (Sandbox Code Playgroud) 我需要一个NSButton,它给我2个事件,一个按下按钮(NSOnState),一个按钮被释放(NSOffState),到目前为止我已经使用鼠标(拦截mouseDown:事件).但是使用键盘快捷键不起作用,它会触发一次NSOnState,然后经常延迟一次.是否有任何方法可以获得按下按钮时按下NSOnState并释放NSOffState?
我当前的NSButton子类看起来像这样,不幸的是使用委托:
-(void)awakeFromNib {
[self setTarget:self];
[self setAction:@selector(buttonAction:)];
}
-(void)mouseDown:(NSEvent *)theEvent {
[_delegate button:self isPressed:YES];
[super mouseDown:theEvent];
}
-(void)buttonAction:(id)sender {
[_delegate button:self isPressed:NO];
}
Run Code Online (Sandbox Code Playgroud) 我有一个源列表的委托类.但我不知道outlineView的返回变量是什么类型:objectValueForTableColumn:byItem:应该是.
在片刻,我的代码看起来像这样,所有结构都可以工作,但没有显示文字:
@interface DataSource : NSObject<NSOutlineViewDelegate,NSOutlineViewDataSource>
@end
Run Code Online (Sandbox Code Playgroud)
还有他们
@implementation DataSource
// Data Source methods
- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item {
return (item == nil) ? 1 : [item numberOfChildren];
}
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item {
return (item == nil) ? YES : ([item numberOfChildren] != -1);
}
- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item {
return (item == nil) ? [FileSystemItem rootItem] : [(FileSystemItem *)item childAtIndex:index];
}
//-(id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item
-(id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item {
return @"Some String";
}
@end
Run Code Online (Sandbox Code Playgroud)
我已经做了一个示例应用程序来显示差异. …