I created a plist in xcode 6, and although I can change the values and the type. I cannot change the key. I know you can change the property list type, but I still cannot change the key even after cycling through all the property list types. I've been looking everywhere, and I cant seem to find an answer. :(
Sorry, I'm dumb.. I needed to change the value of root to "Dictionary" not "array"...
Related
does anyone know how or if it's possible to change permissions on a numbers of registry keys in a subtree, but also also in the process, exclude several keys i don't want changing?
the trouble is they all have different names and if i create a batch file to change the ones i want to change, later on part of a key's name will change so i'll have to keep updating the batch, can i use wild cards to target the keys by the part of the name that stays the stay the same?
i.e. \somekey_0123456789 (the number bit changes but somekey doesn't)
hope this made some sense.
Is it possible to change the value Xcode 5 substitutes for ___FULLUSERNAME___ when expanding file templates? Looks like this was possible in the past via defaults but it now pulls from the system's full username.
My problem is that I have two user accounts, one work and one personal. I like this separation, however, OSX prevents setting the same full username value on both accounts. I was surprised by this restriction since I assumed it was just a UI thing since the underlying account names are obviously different. Alternatively, I would accept an answer that works around this limitation.
EDIT
I don't want to copy all the standard templates into ~/Library/Developer/Xcode/Templates/File\ Templates/ and do a find a replace with my name since that creates duplicates of every template.
I achieve this by renaming my user name of OS X, check this document by Apple.
I'm trying to create a new input method using Input Method Kit. The documentation is very lacking, but I believe I'm setting the project up correctly and I place the input method into ~/Library/Input Methods after building it. However, I see strange behavior when looking at the list of input sources in Language & Text preferences.
The NumberInput sample seems to work fine for me, and there are no differences in my new input method that I can find, aside from the values for tsInputMethodIconFileKey, InputMethodConnectionName, InputMethodServerControllerClass, and CFBundleIdentifier in Info.plist. But I'm seeing these issues:
When I use my desired bundle identifier for the app, nothing shows up in the list. (This bundle ID doesn't exist anywhere else on my system.)
Changing the bundle identifier to be the same as the NumberInput sample makes it show up in the list, but when I select it, it sometimes duplicates entries in the list, and generally behaves weirdly.
As I make slight modifications to the bundle identifier, it seems to behave normally, but once I change it back to the original identifier (the desired one) it disappears from the list.
If I quit the process associated with my input method, selecting it in the menu again doesn't relaunch it.
Does anyone have any idea what's going on? Apple's documentation for IMKit is nearly nonexistant and it doesn't seem like many people have documented their own attempts at making input methods. Is there something I'm missing?
Thanks in advance!
P.S. Yes I've tried logging out and back in and even restarting my computer, nothing seems to significantly change the behavior I mentioned above.
This worked for me. Try this: make sure your bundle identifier contains "inputmethod" somewhere in the path. Example "com.blugs.inputmethod.IPAPalette". Yes AFAIK it's totally undocumented. Yes the documentation is awful. Hope this helps! Cheers.
The accepted answer here is very useful, adding .inputmethod. to your Bundle ID.
I'll add that I found a bit of documentation for this in TextInputSources.h, which contains a large number of comments and documentation not found in the Input Method Kit overview docs. Worth a read.
Carbon > Frameworks > HIToolbox > TextInputSources.h
In the Info.plist file, the value for the CFBundleIdentifier key must be a string that includes ".keyboardlayout."; typically this might be something like "com.companyname.keyboardlayout.MyKeyboardLayouts" (Before Leopard, it was required to be a string that began "com.apple.keyboardlayout", even for keyboard layouts not supplied by Apple).
and
If this key is not specified, an InputSourceID will be constructed by combining the BundleID with an InputModeID suffix formed by deleting any prefix that matches the BundleID or that ends in ".inputmethod."
CRM 2011 warns when changing the value of a global option set entry from its predefined solution-based value.
What's exactly the issue with setting a custom value?
The warning is just telling you that changing the underlying value could break existing code since javascript, plugins, workflows, etc that reference that optionset item by value and not name would cause it to break.
If you're confident it's not going to break anything I would ignore it.
When your CRM system becomes large/complex with lots of entities and external code, the warning is more appropriate then.
Hope this helps.
What Jon said, just make sure you're not referencing any option set values by the underlying value. A not so obvious thing to check when you're changing the values of option set items is the default selected values that you might've had assigned for a field that uses that option set.
Say you had a field "Selection" that used an option set "Options" where "Options" contained options "Yes", "No" or "Maybe". If you set the default value of "Selection" to be "Yes" but then changed the underlying value of the option "Yes", then the default value of "Selection" will be removed. If you look at the customizations.xml you'll see that the underlying option set value is stored, not the text.
I am writing an application that makes use of Uniform Type Identifiers. Specifically, I am calling UTTypeCreateAllIdentifiersForTag() and passing it various MIME types.
My hope was that this function (as distinct from UTTypeCreatePreferredIdentifierForTag()) would give me the most specific UTI as well as all the UTIs to which it conforms. This appears not to be the case -- it either returns a single UTI, or the secondary UTIs are spurious.
There is the UTTypeConformsTo() function defined in the same header file, but I'd prefer a function that returns an array of all the types to which this UTI conforms.
There appears to be hope for me, as MDItemCopyAttributeList() will return such a list. That said, it requires an MDItemRef, which can be created from either a file path or URL -- which isn't great. Sometimes my data is only stored in-memory and I only have a MIME type to go by.
Do I have to iterate through the entire database of UTIs to get this information or am I missing something?
I was indeed missing something: the very obvious solution. While I was trawling through the symbols exported by LaunchServices (and noticed the interesting, but private UTTypeCopyPedigree()), I was reminded of UTTypeCopyDeclaration(), which is defined.
UTTypeCopyDeclaration() is given a UTI and returns (as a CFDictionaryRef) the property list in which the UTI was defined. The object in this dictionary with key kUTTypeConformsToKey is either a CFArrayRef or CFStringRef. In the case of an array, one can recursively iterate until a base type is reached.
This is how I built up an inheritance tree for a given UTI. I hope this helps anyone else with the same issue.
https://github.com/nst/UTIsExplorer generates a hierarchy graph of UTIs in "dot" format for graphviz.