谁知道,哪有什么不对?
解决方法 不确定你是否仍然需要答案,但可能还有其他人仍在寻找.我在apple开发者论坛上找到了解决方案.引用原作者:主要问题是键盘事件的工作方式.虽然NSTextFIEld(及其所有超级视图)都会收到键盘事件,但它不会执行任何 *** 作.发生这种情况是因为d出窗口所在的视图位于一个不能成为关键窗口的窗口中.你不能以任何方式访问该窗口,至少我不能.因此,解决方案是使用类别覆盖我们应用程序中每个NSWindow的方法canBecomeKeyWindow.
NSWindow+canBecomeKeyWindow.h@interface NSWindow (canBecomeKeyWindow)@endNSWindow+canBecomeKeyWindow.m@implementation NSWindow (canBecomeKeyWindow)//This is to fix a BUG with 10.7 where an NSPopover with a text fIEld cannot be edited if its parent window won't become key//The pragma statements disable the corresponding warning for overrIDing an already-implemented method#pragma clang diagnostic push#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"- (BOol)canBecomeKeyWindow{ return YES;}#pragma clang diagnostic pop@end
这使得d出窗口完全受到重视.如果你需要另一个窗口,它必须对canBecomeKeyWindow响应NO,你总是可以创建一个子类.
总结以上是内存溢出为你收集整理的cocoa – 即使设置了可编辑行为,也无法在NSPopover上编辑NSTextField全部内容,希望文章能够帮你解决cocoa – 即使设置了可编辑行为,也无法在NSPopover上编辑NSTextField所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)