小编Mr *_*eph的帖子

使用现有代码创建XCode项目

我正在将Linux应用程序移植到Mac.我有源代码的不同文件,可以使用标准的Makefile进行编译和链接.

我将把代码移植到Mac并继续用C编写代码(抱歉,没有obj-c).有没有办法在XCode上创建项目,添加现有代码,以便我可以使用XCode和IDE,编译和调试代码并生成Mac Makefile?

谢谢您的帮助

xcode xcode-template

30
推荐指数
1
解决办法
5万
查看次数

将CFStringRef转换为char*

我正在使用CFStringRef一个.CFDictionaryRefCFDictionaryGetValue

我一直在尝试将其转换CFStringRefchar*使用CFStringGetCString或者CFStringGetCStringPtr它们返回NULL或崩溃.

有没有办法做到这一点?怎么样?

谢谢.

编辑:示例代码:

SecStaticCodeRef staticCode;
CFDictionaryRef information;
SecCSFlags flags = kSecCSInternalInformation
            | kSecCSSigningInformation
            | kSecCSRequirementInformation
            | kSecCSInternalInformation;    
CFURLRef pathURL = NULL;
CFStringRef pathStr = NULL;
CFStringRef uniqueid;
char* str = NULL;
CFIndex length;


pathStr = CFStringCreateWithCString(kCFAllocatorDefault,  
                                    filename, kCFStringEncodingUTF8);    
pathURL = CFURLCreateWithString(kCFAllocatorDefault, pathStr, NULL);
SecStaticCodeCreateWithPath(pathURL, kSecCSDefaultFlags, &staticCode);
SecCodeCopySigningInformation(staticCode, flags, &information);      

uniqueid = (CFStringRef) CFDictionaryGetValue(information, kSecCodeInfoUnique);

// how do I convert it here to char *?
length = …
Run Code Online (Sandbox Code Playgroud)

c macos

16
推荐指数
4
解决办法
3万
查看次数

从C调用Cocoa API

我不知道这是否可行,但是在普通C中使用代码,是否可以从中调用Cocoa API?
有点像#include <cocoa.h>,添加相应的库并去寻找它?

谢谢您的帮助

c macos cocoa

12
推荐指数
2
解决办法
6292
查看次数

libcurl HTTPS POST数据发送?

我有通过HTTP POST请求接收数据的应用程序.我正在尝试使用libcurl打开对此应用程序的请求,发送数据并从应用程序接收回复.这是我到目前为止的代码:

int main(void)
{
    CURL *curl;
    CURLcode res;

    curl = curl_easy_init();
    if(curl) 
    {
        const int timeout = 30000;
        char outputmessage[]="VGhpcyBpcyBqdXN0IGEgbWVzc2FnZSwgaXQncyBub3QgdGhlIHJlYWwgdGhpbmc=";

        curl_easy_setopt(curl, CURLOPT_URL, "https://somehost.com/someapp");
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
        curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.5");
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, outputmessage);
        curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, strlen(outputmessage));
        curl_easy_setopt(curl, CURLOPT_POST, 1L);
        curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout/1000);

        res = curl_easy_perform(curl);
        if(CURLE_OK != res)
        {
            printf("Error: %s\n", strerror(res));
            return 1;
        }

        // now what?

        // cleanup when done
        curl_easy_cleanup(curl);
    } …
Run Code Online (Sandbox Code Playgroud)

c libcurl

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

接受Cocoa应用程序上的拖动文件

我有一个处理营销信息的简单应用程序.我做的是打电话

NSInteger result  = [openPanel runModalForDirectory:nil file:nil types:fileTypes];
Run Code Online (Sandbox Code Playgroud)

当用户点击File->Open菜单时.现在我被要求向应用程序添加拖放功能,以便用户可以将文件拖到它上,而不必转到菜单或按下命令+ o打开文件.

在你告诉我去阅读文档之前,我已经检查了Apple的简介以进行拖放和其他文档.我仍然无法弄清楚该怎么做.

我是一个老的Unix C程序员,需要复制这个,Apple的文档中的一些假设对我来说没有意义.

简而言之,我需要将哪些内容添加到我的应用中:

  1. 启用拖放功能
  2. 处理拖动的文件

作为一个注释,我应该一次只处理一个文件.

谢谢您的帮助

macos cocoa objective-c

9
推荐指数
1
解决办法
3215
查看次数

检索Mac OS X代理IP地址

我正在尝试以编程方式获取系统上的代理IP地址或URL集.
我在这里找到了可能适用于上一个问题的代码,但它在Objective-C中,我想要使用的是纯C.

我已经尝试将该obj-c代码翻译成C但没有成功.

任何人都知道如何在C中获得系统代理?

谢谢

c macos

6
推荐指数
1
解决办法
1435
查看次数

带有Checkbox Cell的NSTableView

NSTableViewXcode 4上添加到我的xib后,我将其设置为4列.第1列是一个简单的列,它将包含项目的名称.其他3个是复选框.我将a Check Box Cell从对象库拖到tableview.

我填充表格并创建并显示复选框,但是如果我点击没有任何反应,我无法检查或取消选中它们.此外,我甚至不知道如何通过代码来做到这一点.

我该如何工作:能够选中或取消选中复选框并从代码中获取其状态.

我已经看到了这个问题,并没有真正回答我的问题.

以下是根据要求处理表的一些代码:

- (int)numberOfRowsInTableView:(NSTableView *)tableView
{
    return (int)[myArray count];
}

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row
{
    if([[tableColumn identifier] isEqualToString:@"col1"])
    {
       return[NSNumber numberWithInt:NSOffState];
    }    

    return [myArray objectAtIndex:row];
}

- (void)tableView:(NSTableView *)tableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
    NSLog(@"%d", [anObject boolValue]);
    if([[tableColumn identifier] isEqualToString:@"col1"])
    {
        NSLog(@"click col1");
    }        
    if([[tableColumn identifier] isEqualToString:@"col2"])
    {
        NSLog(@"click col2");
    }        

}
Run Code Online (Sandbox Code Playgroud)

我刚添加了更多代码.如何设置它来检查/取消选中?

macos cocoa objective-c

6
推荐指数
1
解决办法
7431
查看次数

更改Delphi OpenDialog的目录

该程序的一小部分背景:
该程序使用选项卡式界面同时处理多个文件.
我正在尝试更改OpenDialog的目录,所以每次打开文件时都会显示我当前正在处理的文件的目录,但即使我设置InitialDir到文件的路径,它也会显示最后打开的文件目录,不是我设定的那个.
我尝试了以下方法:

if Length(CurrentFileName) > 0 then
begin
  OpenFileDialog.InitialDir :='';
  SetCurrentDirectory(PChar(CurrentFileName));
  OpenFileDialog.InitialDir := ExtractFileDir(CurrentFileName);
end;
if OpenFileDialog.Execute then
...
Run Code Online (Sandbox Code Playgroud)

CurrentFileName带有当前选项卡打开文件的文件名的完整路径在哪里.但没有运气.

有没有办法实现这个目标?

例如:

tab1c:\mydir\file.txt打开
tab2d:\someotherdir\somefile.txt打开

如果我移动tab1并调用open函数,我OpenDialog应该向我显示内容c:\mydir\

我正在使用Delphi 7.感谢任何帮助.

delphi delphi-7

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

禁用NSTableView上的特定单元格

我有4列的tableview.第一个有一些文本,另外三个是复选框.
我需要在一个特定行中禁用3个复选框中的2个.我将行号保留在NSInteger变量上.

我实施了:

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex 
Run Code Online (Sandbox Code Playgroud)

我检查列标识符以了解我是否在右列,一旦我知道我检查行是否正确并将单元格设置为禁用.代码如下:

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex 
{    
    if(([[aTableColumn identifier] isEqualToString:@"column1"]) || ([[aTableColumn identifier] isEqualToString:@"column2"]))
    {   
        if (rowIndex == myindex)    // myindex holds the row index where I need to disable the cells 
        {
            [aCell setEnabled:NO];
        }
    }  
    else
    {
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)

发生什么事很奇怪.我的特定行的Colum1和Colum2被禁用,直到我单击另一行,然后所有行都禁用这两列.

如何禁用这两个非常特殊的细胞(仅在myindex行和仅column1column2)?

这是一个Mac OS X应用程序,而不是iOS应用程序.
谢谢

macos cocoa objective-c

5
推荐指数
1
解决办法
2055
查看次数

通过代码验证应用程序的签名

我有app签名.我根据Apple的代码签名指南创建identity并用于codesign签署我的应用程序.

现在,如何从我的应用程序中检查签名?

我需要在Cocoa应用程序(Objective-C)和用C编写的应用程序上验证这一点.

c macos cocoa objective-c digital-signature

5
推荐指数
1
解决办法
7578
查看次数