Cocoa禁用NSTextField

时间:2014-06-09 16:30:23

标签: cocoa

好的,我正在开发一个Cocoa应用程序,当单击“默认源”按钮时,我无法禁用文本字段。程序启动时,默认情况下光标位于此文本字段中。当我单击默认源按钮时,文本字段不会被禁用,直到我手动单击另一个字段,从而从源文本字段中删除光标。即使光标在那里,如何立即禁用文本字段?即使光标不存在,文本字段也不会禁用,直到我将光标移动到那里,然后再返回另一个字段。

我还没有10个声望......这里是图片的链接:http://i.stack.imgur.com/Bu0OG.png

目前,这是单击“默认源”时调用的函数中唯一的代码行:

sourcePath.enabled = NO;

1 个答案:

答案 0 :(得分:0)

在禁用前检查您是否在主线程上:

NSLog(@"is main thread: %d", [NSThread isMainThread]);

如果不是,那么你可以:

dispatch_async(dispatch_get_main_queue(), ^{
    sourcePath.enabled = NO;
});

此代码可能有点不准确,因为我的背景来自iOS ...