我已经在iOS 8模拟器上成功创建了一个带Swift的自定义键盘.
虽然它运行良好,但我无法调试它.它是一个包含的目标,通过Settings-> General安装.在XCode中放置书签不起作用.
我正在尝试在ios 8上为自定义键盘扩展创建设置包.我已将设置包添加到键盘扩展目标.然后当加载键盘视图时,我试图以下列方式访问设置包.
BOOL autoCapitalizationEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"autoCapitalizationEnabled"];
Run Code Online (Sandbox Code Playgroud)
结果总是0,似乎程序无法访问设置包文件.
有没有人有扩展设置捆绑之前的问题?顺便说一下,这个东西与设置包的默认值无关,因为每次我在键盘启动前禁用并启用此属性以强制使用默认值.
我正在使用iOS 8自定义键盘,我使用像笑脸一样的图像来设计键盘.我希望这个键盘可以与iMessage一起使用.当我试图发送文本工作正常但无法在那里分享图像.我试过以下代码:
分享文字:(其工作正常)
-(void)shouldAddCharector:(NSString*)Charector{
if ([Charector isEqualToString:@"Clear"]) {
[self.textDocumentProxy deleteBackward];
} else if([Charector isEqualToString:@"Dismiss"]){
[self dismissKeyboard];
} else {
[self.textDocumentProxy insertText:Charector];
}
}
Run Code Online (Sandbox Code Playgroud)
添加图片:(不工作)
-(void)shouldAddImage:(UIImage*)oneImage
{
UIImage* onions = [UIImage imageNamed:@"0.png"];
NSMutableAttributedString *mas;
NSTextAttachment* onionatt = [NSTextAttachment new];
onionatt.image = onions;
onionatt.bounds = CGRectMake(0,-5,onions.size.width,onions.size.height);
NSAttributedString* onionattchar = [NSAttributedString attributedStringWithAttachment:onionatt];
NSRange r = [[mas string] rangeOfString:@"Onions"];
[mas insertAttributedString:onionattchar atIndex:(r.location + r.length)];
NSString *string =[NSString stringWithFormat:@"%@",mas];
[self.textDocumentProxy insertText:string];
}
Run Code Online (Sandbox Code Playgroud)
是否有可能将图像传递给 [self.textDocumentProxy insertText:string];
以下附图显示了我想要如何使用此图像键盘.我很惊讶表情符号键盘会起作用吗?
是否可以使用NSUserDefaults在Today Extension上保存和加载数据?关闭通知中心后,窗口小部件的行为类似于终止的应用程序,因此任何数据结果都会丢失.我怎么能解决这个问题?
这是我的代码:
NSUserDefaults *defaults;
- (void)viewDidLoad {
[super viewDidLoad];
defaults = [NSUserDefaults standardUserDefaults];
NSArray *loadStrings = [defaults stringArrayForKey:@"savedStrings"];
if ([loadStrings objectAtIndex:0] != nil) {
[display setText:[NSString stringWithFormat:@"%@", [loadStrings objectAtIndex:0]]];
}
if ([loadStrings objectAtIndex:1] != nil) {
calculatorMemory = [NSString stringWithFormat:@"%@", [loadStrings objectAtIndex:1]].doubleValue;
}
}
- (IBAction)saveData:(id)sender {
NSString *displayString;
NSString *memoryString;
NSArray *saveStrings = [[NSArray alloc] initWithObjects: displayString, memoryString, nil];
defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:saveStrings forKey:@"savedStrings"];
[defaults synchronize];
}
Run Code Online (Sandbox Code Playgroud) 我有一个奇怪的问题,我正在尝试构建一个动作扩展,它将从提供的图像中扫描条形码.这是代码.
override func viewDidLoad() {
super.viewDidLoad()
// Get the item[s] we're handling from the extension context.
// For example, look for an image and place it into an image view.
// Replace this with something appropriate for the type[s] your extension supports.
var imageFound = false
for item: AnyObject in self.extensionContext!.inputItems {
let inputItem = item as NSExtensionItem
for provider: AnyObject in inputItem.attachments! {
let itemProvider = provider as NSItemProvider
if itemProvider.hasItemConformingToTypeIdentifier(kUTTypeImage as NSString) {
// This is an image. …Run Code Online (Sandbox Code Playgroud) 我一直在玩iOS 8中的新自定义键盘应用程序扩展API,使用Swift作为我的首选语言.然而,我注意到的一件事是,println似乎并没有向控制台输出任何输出,大概是因为这些语句是在应用程序扩展中执行而不是包含应用程序.有没有人找到一种方法从应用程序扩展中将语句打印到控制台?
如何让我的应用程序的UITextfields仅在iOS 8中使用Apple键盘?我不想允许第三方键盘,期间.我理解这可能是糟糕的用户体验所以请不要与我讨论这一点:)
我知道我可以将securedEntry属性设置为true以强制Apple键盘(http://www.imore.com/custom-keyboards-ios-8-explained).也许iOS 8会让我设置这个属性而不掩盖文本?
问题
大多数情况下,当我尝试调试自定义键盘扩展时,我收到以下错误,然后键盘消失(可能是崩溃,所以系统将其从屏幕中删除并用标准键盘替换它)
plugin com.db.Trype.TrypeKeyboard interrupted
Run Code Online (Sandbox Code Playgroud)
(注意:Trype是键盘的名称.)
处理
我按以下方式调试键盘:
TrypeKeyboard方案以在启动时运行我的app可执行文件.我尝试过不同版本的Xcode-Beta,并尝试重新启动模拟器,计算机等,所有这些都取得了不同程度的临时成功.
其他人遇到此错误并有建议吗?
更新:这是随附的错误消息.也许有一些方法可以打印出更多的UserInfo?
viewServiceDidTerminateWithError:: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3
"The operation couldn’t be completed. (_UIViewServiceInterfaceErrorDomain error 3.)"
UserInfo=0x7fc99c900a50 {Message=Service Connection Interrupted}
Run Code Online (Sandbox Code Playgroud) 是否可以混合图像和文本并将其作为彩信发送?UIActivityViewController将与下方的文本共享图像,但无论我如何订购文本和图像,图像始终显示在顶部,文本显示在底部.如果不可能UIActivityViewController,还有另外一种方法吗?
我正在尝试使用的代码:
NSArray *activityItems = @[smallImage, @"Love", mediumImage, @"You", largeImage];
NSArray *applicationActivities = nil;
NSArray *excludeActivities = nil;
UIActivityViewController * activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
activityController.excludedActivityTypes = excludeActivities;
[self presentViewController:activityController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
它产生了这个结果:

但这就是我想要的:

我正在尝试创建一个简单的今日扩展.我能够添加一个标签,其中值可以通过主应用程序更新.现在,我正在探索通过扩展更新主应用程序中的值的可能性.但是,当我尝试添加文本字段时,我无法输入任何内容.
这是扩展的限制吗?如果没有,你能指导我如何做到这一点吗?非常感谢你!