小编shr*_*ads的帖子

如何给NSWindow一个特定的背景颜色

我正在写一个有一个NSWindow的可可应用程序.我想将窗口的背景颜色更改为特定颜色.但是检查器中的窗口属性仅提供"纹理窗口"替代方案.如何根据需要制作窗口的颜色?

cocoa interface-builder

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

无法从C函数调用Objective C方法

我正在使用MVC架构作为GUI应用程序.模型类有一些C函数.其中一个C函数调用Objective-C类的一些方法.我使用该类的对象来调用这些方法.发生的奇怪事情是先前对xyz方法的方法被完美地调用,但是当调用xyz方法时,该方法及其之后的方法不会被执行.我没有得到任何错误.所以无法弄清楚到底发生了什么.关于这可能是什么原因的任何想法?

objective-c

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

iPhone禁用UIActionSheet按钮

我想禁用UIAction表中的按钮,并在某个条件成立后启用它们.我该如何实现这一目标?有任何想法吗?

iphone cocoa-touch objective-c uikit

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

处理回调

我在Objective-C类中有一个方法.它有2个用C编写的回调函数.类指针即self传递给这些函数void *.在C函数中,我创建了一个类型为class的指针并分配void *参数.第一个回调函数成功执行.但void *指针变为nil第二个回调函数.请注意,我没有在第一个回调中调整指针但仍然进入nil第二个回调.

什么想法可能会出错?

例如:

kr = IOServiceAddMatchingNotification(gNotifyPort, kIOFirstMatchNotification,
                                      matchingDict, RawDeviceAdded, NULL,
                                      &gRawAddedIter);

RawDeviceAdded(NULL, gRawAddedIter, self);
Run Code Online (Sandbox Code Playgroud)

这很好用.但是下面的功能收到selfnil.

kr = IOServiceAddMatchingNotification(gNotifyPort, kIOFirstMatchNotification,
                                      matchingDict, BulkTestDeviceAdded, NULL,
                                      &gBulkTestAddedIter);

BulkTestDeviceAdded(NULL, gBulkTestAddedIter, self);
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c

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

使用FTP与NSURL

我想编写一个使用ftp下载文件的cocoa应用程序.我读到了NSURL类,它有"NSURLHandle FTP属性键".我想知道如何利用这些常量为ftp站点提供用户名和密码.

macos cocoa

0
推荐指数
1
解决办法
4437
查看次数

在将固件下载到设备时更新进度指示器

我正在开发一个将固件下载到设备的cocoa应用程序.使用NSProgressIndicator显示下载进度.我-incrementBy:在while循环中调用DeviceRequestTO方法之后的NSProgressIndicator方法.但只有在将整个固件写入设备后才会更新进度指示器.它显示100%完成一次.所以我添加了-displayIfNeededNSView类的方法.现在它可以顺利显示进度,但这也会在固件下载完成后发生.如何同时实现进度指示和写入操作?

以下是代码:

while(1)
{
    int result = (*dev)->DeviceRequestTO(dev, &request);
    printf("\nBlocks Written Successfully: %d",DfuBlockCnt);
    [refToSelf performSelectorOnMainThread:@selector(notifyContent)
                        withObject:nil
                        waitUntilDone:NO];
}

//In main thread
- (void)notifyContent{
    [dnldIndicator incrementBy:1];
    [self displayIfNeeded];
}
Run Code Online (Sandbox Code Playgroud)

cocoa

0
推荐指数
1
解决办法
727
查看次数