首先,我是编程的绝对初学者,所以不要嘲笑我太多.
我见过的唯一信号是GUI工具包,GUI工具包都带有自己的信号.那么,Boost:信号甚至可以与这些GUI工具包一起使用吗?这是个好主意吗?信号有哪些其他应用?
我正在将一个Carbon应用程序移植到Cocoa,并且正在寻找相当于kLogsFolderTypeCocoa的东西,目前它将返回/Users/me/Library/Logs
我已经看到NSSearchPathForDirectoriesInDomains了相关的类型,但找不到一个等价的值.
我已经子类化NSTableCellView了一些自定义绘图.当包含NSOutlineView的突出显示样式设置为" 无"时,我的视图将接收mouseDown事件.
当我将NSOutlineView高亮样式更改为Regular时,我的视图不再接收其mouseDown事件.
如何在将大纲视图的高亮样式保持为常规的同时将mouseDown事件传递给我的视图?
有没有办法在Cocoa中动态创建彩色填充图案?
特别是代替使用来自图像文件的固定模式
NSColor *fillPattern = [NSColor colorWithPatternImage:patternImage];
Run Code Online (Sandbox Code Playgroud)
我想通过在运行时动态选择适当的颜色来创建模式.背景是通过在其上面呈现"相反"颜色的条纹或正方形来突出显示彩色对象 - 在这种情况下可能意味着相反的情况,但这是一个不同的故事.
应用于绘图应用程序中潜在的数百个对象,它需要是一个相当快速的方法,所以我想只是在patternImage中交换颜色将不够好.
(它确实在QuickDraw中工作得很好..!)
我已经实现了一个委托及其controlTextDidChange方法,只要我在中输入文本就会调用它NSTextField.
当我以编程方式设置文本时[field setStringValue:@"newText"],controlTextDidChange不会被调用.
你能解释一下吗?我应该如何以编程方式设置一个新的值来触发我的委托方法的调用controlTextDidChange.
我是在一个NSView中拖放,但从draggingEntered:未被调用过.代码:
#import <Cocoa/Cocoa.h>
@interface testViewDrag : NSView <NSDraggingDestination>
@end
@implementation testViewDrag
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
[self registerForDraggedTypes:[NSImage imagePasteboardTypes]];
NSLog(@"initWithFrame");
}
return self;
}
-(NSDragOperation)draggingEntered:(id<NSDraggingInfo>)sender
{
NSLog(@"draggingEntered");
return NSDragOperationEvery;
}
-(NSDragOperation) draggingUpdated:(id<NSDraggingInfo>)sender
{
NSLog(@"draggingUpdated");
return NSDragOperationEvery;
}
@end
Run Code Online (Sandbox Code Playgroud)
在界面构建器中,我将一个subView(类设置为testViewDrag)添加到主窗口.在日志中我可以看到initWithFrame日志,但是当我拖动时,日志中不会显示任何内容.
我错过了什么?
我正在将Objective-C方法声明转换为其选择器,即删除参数名称和类型,如此NSString方法:
- (void)getCString:(char *)buffer maxLength:(NSUInteger)maxLength
要得到
getCString:maxLength:
所以我发现正则表达式\w*?\:将提取我需要的东西(在http://gskinner.com/RegExr/等在线正则表达式检查器sed中正常工作)但我无法(在OS X上)工作用正则表达式提取签名.
从各种sed片段/样本页面我得到的印象是这样的东西应该有效,除非它没有(我尝试过的~250种差异......):
cat test.m | sed '/\w*?\:/p'
Run Code Online (Sandbox Code Playgroud)
任何sed巫师都可以伸出援手吗?
我花了一天多的时间试图找到一个如何使用NSObjectControllerfor binding和核心数据的简单示例.所有示例都NSArrayControllers带有NSTableView绑定.
您如何设置一个简单NSObjectController的核心数据来自动保存和获取数据?假设您想要将具有字符串属性的实体绑定到文本字段,您将如何执行此操作?
任何人都可以告诉我如何使用NSTitlebarAccessoryViewController,用一个例子将子视图添加到视图中吗?由于我是mac编程的新手,你可能需要从基础知识中解释.请.
xcode cocoa objective-c osx-yosemite nstitlebaraccessoryviewcontroller
我想在我的Mac应用程序中实现一些"简单"的拖放操作.我在视图中拖动并相应地在我的nib文件中输入"MyView".但是我的控制台中没有得到任何响应(我尝试在触发任何协议方法时记录消息)
我有这样的NSView子类:
@interface MyView : NSView <NSDraggingDestination>{
NSImageView* imageView;
}
Run Code Online (Sandbox Code Playgroud)
并像这样实现它:
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self registerForDraggedTypes:[NSImage imagePasteboardTypes]];
NSRect rect = NSMakeRect(150, 0, 400, 300);
imageView = [[NSImageView alloc] initWithFrame:rect];
[imageView setImageScaling:NSScaleNone];
[imageView setImage:[NSImage imageNamed:@"test.png"]];
[self addSubview:imageView];
}
return self;
}
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender{
NSLog(@"entered");
return NSDragOperationCopy;
}
- (NSDragOperation)draggingUpdated:(id <NSDraggingInfo>)sender{
return NSDragOperationCopy;
}
- (void)draggingExited:(id <NSDraggingInfo>)sender{
NSLog(@"exited");
}
- (BOOL)prepareForDragOperation:(id <NSDraggingInfo>)sender{
NSLog(@"som");
return YES;
}
- (BOOL)performDragOperation:(id<NSDraggingInfo>)sender {
NSPasteboard *pboard = [sender draggingPasteboard]; …Run Code Online (Sandbox Code Playgroud) cocoa ×7
macos ×4
objective-c ×3
xcode ×3
boost ×1
c++ ×1
command-line ×1
core-data ×1
macos-carbon ×1
nstableview ×1
nstitlebaraccessoryviewcontroller ×1
osx-yosemite ×1
sed ×1
signals ×1