我正在尝试创建一个自动更正系统,当用户键入带有大写字母的单词时,自动更正功能不起作用.为了解决这个问题,我制作了一个字符串类型的副本,应用了.lowercaseString,然后对它们进行了比较.如果字符串确实是错误的,它应该纠正这个词.然而,替换键入的单词的单词都是小写的.所以我需要将.uppercaseString仅应用于第一个字母.我原本以为我可以用
nameOfString[0]
Run Code Online (Sandbox Code Playgroud)
但这显然不起作用.如何将字符串的第一个字母设置为大写,然后能够打印第一个字母大写的完整字符串?
谢谢你的帮助!
Apple文档建议使用autolayout设置Today Extensions的高度.
如果窗口小部件具有要显示的其他内容,则可以依赖"自动布局"约束来适当调整窗口小部件的高度.如果不使用自动布局,则可以使用UIViewController属性preferredContentSize指定窗口小部件的新高度.
但是,我见过的每个示例和教程最终都会使用preferredContentSize.
我通过autolayout设置高度的所有尝试都会导致违反约束的警告.
我开始使用新的xcode模板和一个全新的扩展模板.我添加的唯一内容TodayViewController.m是:
- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets {
return UIEdgeInsetsMake(0, 0, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)
注意:如果我只使用默认边距,我仍会遇到此问题.
我约束标签高度,将标签置于容器中心,并将容器高度限制为与标签高度相同:

这应该导致一个标签在指定的高度填充容器,没有约束冲突.相反,我得到一个约束冲突:
2014-09-28 10:27:39.254 TodayExtension[61090:2672196] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're …Run Code Online (Sandbox Code Playgroud) 我想实现应用程序扩展,但我无法决定是否应将其实现为共享扩展或操作扩展.
文档没有说明差异,只是这样:
是否存在技术差异(例如,Action扩展是否允许我执行Share扩展所不具备的功能),还是仅仅是Apple希望您遵循的约定,以减少对用户的混淆?
似乎至少有一个区别是,如果您想要非UI操作,则必须选择Action而不是Share扩展.
还有什么区别?
我正在寻找的事情的例子:
在iOS 8.3之前,检查是否已授予键盘扩展"允许完全访问权限"的方法是通过容器应用程序中的以下代码:
- (BOOL)isOpenAccessGranted{
return [UIPasteboard generalPasteboard];
}
Run Code Online (Sandbox Code Playgroud)
但是,正如对这个流行的SO答案线程的评论所指出的那样,自iOS 8.3以来,即使未授予完全访问权限,应用程序也可以从共享组容器中读取,因此上述代码始终返回true.但是,仅在启用"允许完全访问"时才授予写入权限.
我已经尝试列出了所有基于苹果公司pasteboards的文档上UIPasteboard,但它并没有界定哪些是可访问的.对此有任何见解非常感谢.
在iOS应用和扩展应用之间共享课程
我想在我的应用和扩展应用中使用自定义类.如果我只是在主应用程序文件夹中有该类,则扩展程序不会接收它.我尝试制作它的副本并将其放入扩展文件夹,但我当然得到一个invalid redeclaration of [my class]错误.什么是最好的解决方案?它只是一个类,而不是多个资源.
我有一个iOS 8共享扩展程序,用于从Web浏览器发布内容.如果用户从未通过包含应用程序登录,则需要提示用户登录.
Pinterest似乎支持快速切换到包含应用程序(我假设他们已经实现了共享扩展).
iOS文档表明只有今天的扩展可以打开包含应用程序.
有没有办法通过共享扩展快速切换到包含应用程序进行身份验证?
我正在开发一个使用NSHTTPCookieStorage存储用户数据的应用程序.我无法访问扩展中的cookie,因为它们保存在Library中.谢谢.
我了解我可以通过启用应用程序组和使用NSUserDefaults在我的共享扩展程序和其包含的应用程序之间共享数据(请参阅在iOS 8共享扩展程序和主应用程序之间共享数据).
但是,我存储的数据很敏感,所以我希望使用钥匙串.因此,用户将在包含应用程序中输入帐户信息,然后共享扩展将读取该数据以执行预期的共享操作.
有谁知道这是否可能?我的第一个破解建议扩展和包含应用程序具有单独的密钥链(在包含应用程序中使用密钥保存数据时,在尝试返回扩展中该密钥的数据时返回null).
谢谢!
PS使用Lockbox进行Keychain访问,但是如果它太过抽象而无法使其工作,我可能会抛弃它. https://github.com/granoff/Lockbox
我检查了最新的Dropbox和Excel for iOS.在Dropbox中,我们得到一个编辑按钮.单击它会打开Excel的扩展,您可以在其中编辑文件.
保存后,更改也会反映在Dropbox文件中.
我想添加这样一个按钮.此外,我想在图像中添加这样一个按钮,以便在可用的"照片编辑"应用程序中打开它们.
如何检查文件(图像,xls,doc或任何其他)是否可以打开进行编辑?
代码到目前为止:
UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithURL:url inMode:UIDocumentPickerModeExportToService];
documentPicker.delegate = self;
documentPicker.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:documentPicker animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
还尝试将模式改为UIDocumentPickerModeMoveToService......

根据apple docs移动本地文档.用户选择外部目的地.文件选择器移动文件; 但是,您仍然可以将文档作为外部文档访问,让用户可以编辑文档.
但我尝试了所有四种模式.没有显示excel选项.
UIDocumentPickerModeImport,
UIDocumentPickerModeOpen,
UIDocumentPickerModeExportToService,
UIDocumentPickerModeMoveToService
Run Code Online (Sandbox Code Playgroud) 我正在尝试自定义键盘如何影响我的应用.我在iPhone 6上安装了Swype.
我发现在我的一些视图中,我在文本字段上设置了自定义inputView属性,Swype键盘覆盖并呈现而不是我的选择器.这完全打破了我的UI,不能被允许.
有没有办法明确告诉iOS 8只使用我设置的inputView?
这可能是一个错误吗?允许第三方覆盖我的输入规范是不是完全没有预期的行为?
ios8-extension ×10
ios ×8
ios8 ×6
cocoa-touch ×1
excel ×1
inputview ×1
iphone ×1
keychain ×1
objective-c ×1
string ×1
swift ×1
uidocument ×1
xcode ×1