首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >警报级别窗口中带有自定义inputView的inputView

警报级别窗口中带有自定义inputView的inputView
EN

Stack Overflow用户
提问于 2013-07-19 20:40:26
回答 1查看 345关注 0票数 0

我有一个自定义警报视图,它出现在自己的UIWindow中,其windowLevel属性设置为UIWindowLevelAlert。警报有一个带有常规键盘的文本字段,以及一个自定义UIControl子类,该子类返回一个UIDatePicker作为其inputView

当系统响应于控件成为第一个响应者时,日期选择器出现在警报视图后面。我的解决方案是在控件的reloadInputViews中调整选择器窗口的窗口级别

代码语言:javascript
复制
- (void)reloadInputViews
{
    [super reloadInputViews];
    if (self.datePicker.window.windowLevel < self.window.windowLevel)
    {
        self.datePicker.window.windowLevel = self.window.windowLevel;
    }
}

问题是,当在文本字段和自定义控件之间快速切换时,应用程序会冻结(暂停调试器会显示主线程卡在mach_msg_trap上)。我怀疑这可能是窗口级别的诡计,但我无法证实。

是否有更“正确”的方法来解决这个问题?mach_msg_trap是什么?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-07-19 21:30:49

就像经常发生的那样,我在发帖后不久就想出了答案.

正如mach_msg_trap指令所暗示的,这是一个线程问题,与日期选择器控件的实现无关。

我在其他地方修复了一些NSLock对象,这似乎解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17755112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档