小编Jay*_*Jay的帖子

Boost :: Signals有什么意义?

首先,我是编程的绝对初学者,所以不要嘲笑我太多.
我见过的唯一信号是GUI工具包,GUI工具包都带有自己的信号.那么,Boost:信号甚至可以与这些GUI工具包一起使用吗?这是个好主意吗?信号有哪些其他应用?

c++ boost signals boost-signals boost-signals2

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

如何在cocoa中获取用户的日志文件夹(可能是NSSearchPathForDirectoriesInDomains)

我正在将一个Carbon应用程序移植到Cocoa,并且正在寻找相当于kLogsFolderTypeCocoa的东西,目前它将返回/Users/me/Library/Logs

我已经看到NSSearchPathForDirectoriesInDomains了相关的类型,但找不到一个等价的值.

macos cocoa macos-carbon

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

如何在NSTableCellView子类中接收鼠标点击?

我已经子类化NSTableCellView了一些自定义绘图.当包含NSOutlineView的突出显示样式设置为" 无"时,我的视图将接收mouseDown事件.
当我将NSOutlineView高亮样式更改为Regular时,我的视图不再接收其mouseDown事件.

如何在将大纲视图的高亮样式保持为常规的同时将mouseDown事件传递给我的视图?

cocoa nstableview

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

即时创建模式?

有没有办法在Cocoa中动态创建彩色填充图案?

特别是代替使用来自图像文件的固定模式

NSColor *fillPattern = [NSColor colorWithPatternImage:patternImage];
Run Code Online (Sandbox Code Playgroud)

我想通过在运行时动态选择适当的颜色来创建模式.背景是通过在其上面呈现"相反"颜色的条纹或正方形来突出显示彩色对象 - 在这种情况下可能意味着相反的情况,但这是一个不同的故事.

应用于绘图应用程序中潜在的数百个对象,它需要是一个相当快速的方法,所以我想只是在patternImage中交换颜色将不够好.

(它确实在QuickDraw中工作得很好..!)

cocoa core-graphics

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

在setStringValue上没有调用ControlTextDidChange

我已经实现了一个委托及其controlTextDidChange方法,只要我在中输入文本就会调用它NSTextField.

当我以编程方式设置文本时[field setStringValue:@"newText"],controlTextDidChange不会被调用.

你能解释一下吗?我应该如何以编程方式设置一个新的值来触发我的委托方法的调用controlTextDidChange.

xcode cocoa objective-c

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

拖放到NSView中

我是在一个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日志,但是当我拖动时,日志中不会显示任何内容.

我错过了什么?

macos drag-and-drop nsdragginginfo

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

sed regex从方法声明中提取选择器(Obj-C)

我正在将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巫师都可以伸出援手吗?

macos command-line sed objective-c

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

如何将NSObjectController与Core Data一起使用?

我花了一天多的时间试图找到一个如何使用NSObjectControllerfor binding和核心数据的简单示例.所有示例都NSArrayControllers带有NSTableView绑定.

您如何设置一个简单NSObjectController的核心数据来自动保存和获取数据?假设您想要将具有字符串属性的实体绑定到文本字段,您将如何执行此操作?

macos cocoa core-data cocoa-bindings nsobjectcontroller

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

如何使用NSTitlebarAccessoryViewController?

任何人都可以告诉我如何使用NSTitlebarAccessoryViewController,用一个例子将子视图添加到视图中吗?由于我是mac编程的新手,你可能需要从基础知识中解释.请.

xcode cocoa objective-c osx-yosemite nstitlebaraccessoryviewcontroller

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

Cocoa中的拖放(<NSDraggingDestination>)不起作用

我想在我的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)

xcode cocoa drag-and-drop nsdragginginfo

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